1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ricardo Wurmus <rekado@elephly.net>
3 ;;; Copyright © 2015, 2016, 2017, 2018 Ben Woodcroft <donttrustben@gmail.com>
4 ;;; Copyright © 2015, 2016, 2018, 2019, 2020 Pjotr Prins <pjotr.guix@thebird.nl>
5 ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
6 ;;; Copyright © 2016, 2020 Roel Janssen <roel@gnu.org>
7 ;;; Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
8 ;;; Copyright © 2016, 2020 Marius Bakke <mbakke@fastmail.com>
9 ;;; Copyright © 2016, 2018 Raoul Bonnal <ilpuccio.febo@gmail.com>
10 ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
11 ;;; Copyright © 2017, 2021 Arun Isaac <arunisaac@systemreboot.net>
12 ;;; Copyright © 2018 Joshua Sierles, Nextjournal <joshua@nextjournal.com>
13 ;;; Copyright © 2018 Gábor Boskovits <boskovits@gmail.com>
14 ;;; Copyright © 2018, 2019, 2020, 2021 Mădălin Ionel Patrașcu <madalinionel.patrascu@mdc-berlin.de>
15 ;;; Copyright © 2019, 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
16 ;;; Copyright © 2019 Brian Leung <bkleung89@gmail.com>
17 ;;; Copyright © 2019 Brett Gilio <brettg@gnu.org>
18 ;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
19 ;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
20 ;;; Copyright © 2020 Pierre Langlois <pierre.langlois@gmx.com>
21 ;;; Copyright © 2020 Bonface Munyoki Kilyungi <bonfacemunyoki@gmail.com>
22 ;;; Copyright © 2021 Tim Howes <timhowes@lavabit.com>
23 ;;; Copyright © 2021 Hong Li <hli@mdc-berlin.de>
25 ;;; This file is part of GNU Guix.
27 ;;; GNU Guix is free software; you can redistribute it and/or modify it
28 ;;; under the terms of the GNU General Public License as published by
29 ;;; the Free Software Foundation; either version 3 of the License, or (at
30 ;;; your option) any later version.
32 ;;; GNU Guix is distributed in the hope that it will be useful, but
33 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
34 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
35 ;;; GNU General Public License for more details.
37 ;;; You should have received a copy of the GNU General Public License
38 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
40 (define-module (gnu packages bioinformatics)
41 #:use-module ((guix licenses) #:prefix license:)
42 #:use-module (guix packages)
43 #:use-module (guix utils)
44 #:use-module (guix download)
45 #:use-module (guix git-download)
46 #:use-module (guix hg-download)
47 #:use-module (guix build-system ant)
48 #:use-module (guix build-system gnu)
49 #:use-module (guix build-system cmake)
50 #:use-module (guix build-system go)
51 #:use-module (guix build-system haskell)
52 #:use-module (guix build-system meson)
53 #:use-module (guix build-system ocaml)
54 #:use-module (guix build-system perl)
55 #:use-module (guix build-system python)
56 #:use-module (guix build-system qt)
57 #:use-module (guix build-system r)
58 #:use-module (guix build-system ruby)
59 #:use-module (guix build-system scons)
60 #:use-module (guix build-system trivial)
61 #:use-module (guix deprecation)
62 #:use-module (gnu packages)
63 #:use-module (gnu packages assembly)
64 #:use-module (gnu packages autotools)
65 #:use-module (gnu packages algebra)
66 #:use-module (gnu packages base)
67 #:use-module (gnu packages bash)
68 #:use-module (gnu packages bison)
69 #:use-module (gnu packages bioconductor)
70 #:use-module (gnu packages boost)
71 #:use-module (gnu packages check)
72 #:use-module (gnu packages code)
73 #:use-module (gnu packages commencement)
74 #:use-module (gnu packages cmake)
75 #:use-module (gnu packages compression)
76 #:use-module (gnu packages cpio)
77 #:use-module (gnu packages cran)
78 #:use-module (gnu packages curl)
79 #:use-module (gnu packages documentation)
80 #:use-module (gnu packages databases)
81 #:use-module (gnu packages datastructures)
82 #:use-module (gnu packages dlang)
83 #:use-module (gnu packages file)
84 #:use-module (gnu packages flex)
85 #:use-module (gnu packages gawk)
86 #:use-module (gnu packages gcc)
87 #:use-module (gnu packages gd)
88 #:use-module (gnu packages golang)
89 #:use-module (gnu packages glib)
90 #:use-module (gnu packages graph)
91 #:use-module (gnu packages graphics)
92 #:use-module (gnu packages graphviz)
93 #:use-module (gnu packages groff)
94 #:use-module (gnu packages gtk)
95 #:use-module (gnu packages guile)
96 #:use-module (gnu packages guile-xyz)
97 #:use-module (gnu packages haskell-check)
98 #:use-module (gnu packages haskell-web)
99 #:use-module (gnu packages haskell-xyz)
100 #:use-module (gnu packages image)
101 #:use-module (gnu packages image-processing)
102 #:use-module (gnu packages imagemagick)
103 #:use-module (gnu packages java)
104 #:use-module (gnu packages java-compression)
105 #:use-module (gnu packages jemalloc)
106 #:use-module (gnu packages linux)
107 #:use-module (gnu packages lisp-xyz)
108 #:use-module (gnu packages logging)
109 #:use-module (gnu packages machine-learning)
110 #:use-module (gnu packages man)
111 #:use-module (gnu packages maths)
112 #:use-module (gnu packages mpi)
113 #:use-module (gnu packages ncurses)
114 #:use-module (gnu packages node)
115 #:use-module (gnu packages ocaml)
116 #:use-module (gnu packages pcre)
117 #:use-module (gnu packages parallel)
118 #:use-module (gnu packages pdf)
119 #:use-module (gnu packages perl)
120 #:use-module (gnu packages perl-check)
121 #:use-module (gnu packages pkg-config)
122 #:use-module (gnu packages popt)
123 #:use-module (gnu packages protobuf)
124 #:use-module (gnu packages python)
125 #:use-module (gnu packages python-check)
126 #:use-module (gnu packages python-compression)
127 #:use-module (gnu packages python-science)
128 #:use-module (gnu packages python-web)
129 #:use-module (gnu packages python-xyz)
130 #:use-module (gnu packages qt)
131 #:use-module (gnu packages rdf)
132 #:use-module (gnu packages readline)
133 #:use-module (gnu packages ruby)
134 #:use-module (gnu packages serialization)
135 #:use-module (gnu packages shells)
136 #:use-module (gnu packages sphinx)
137 #:use-module (gnu packages statistics)
138 #:use-module (gnu packages swig)
139 #:use-module (gnu packages tbb)
140 #:use-module (gnu packages tex)
141 #:use-module (gnu packages texinfo)
142 #:use-module (gnu packages textutils)
143 #:use-module (gnu packages time)
144 #:use-module (gnu packages tls)
145 #:use-module (gnu packages vim)
146 #:use-module (gnu packages web)
147 #:use-module (gnu packages xml)
148 #:use-module (gnu packages xorg)
149 #:use-module (srfi srfi-1)
150 #:use-module (srfi srfi-26)
151 #:use-module (ice-9 match))
153 (define-public aragorn
160 "http://mbio-serv2.mbioekol.lu.se/ARAGORN/Downloads/aragorn"
164 "09i1rg716smlbnixfm7q1ml2mfpaa2fpn3hwjg625ysmfwwy712b"))))
165 (build-system gnu-build-system)
167 `(#:tests? #f ; there are no tests
169 (modify-phases %standard-phases
179 (string-append "aragorn" ,version ".c"))
182 (lambda* (#:key outputs #:allow-other-keys)
183 (let* ((out (assoc-ref outputs "out"))
184 (bin (string-append out "/bin"))
185 (man (string-append out "/share/man/man1")))
186 (install-file "aragorn" bin)
187 (install-file "aragorn.1" man))
189 (home-page "http://mbio-serv2.mbioekol.lu.se/ARAGORN")
190 (synopsis "Detect tRNA, mtRNA and tmRNA genes in nucleotide sequences")
192 "Aragorn identifies transfer RNA, mitochondrial RNA and
193 transfer-messenger RNA from nucleotide sequences, based on homology to known
194 tRNA consensus sequences and RNA structure. It also outputs the secondary
195 structure of the predicted RNA.")
196 (license license:gpl2)))
204 ;; BamM is not available on pypi.
206 (url "https://github.com/Ecogenomics/BamM")
209 (file-name (git-file-name name version))
212 "1p83ahi984ipslxlg4yqy1gdnya9rkn1v71z8djgxkm9d2chw4c5"))
213 (modules '((guix build utils)))
216 ;; Delete bundled htslib.
217 (delete-file-recursively "c/htslib-1.3.1")
219 (build-system python-build-system)
221 `(#:python ,python-2 ; BamM is Python 2 only.
222 ;; Do not use bundled libhts. Do use the bundled libcfu because it has
223 ;; been modified from its original form.
225 (let ((htslib (assoc-ref %build-inputs "htslib")))
226 (list "--with-libhts-lib" (string-append htslib "/lib")
227 "--with-libhts-inc" (string-append htslib "/include/htslib")))
229 (modify-phases %standard-phases
230 (add-after 'unpack 'autogen
232 (with-directory-excursion "c"
233 (let ((sh (which "sh")))
234 (for-each make-file-writable (find-files "." ".*"))
235 ;; Use autogen so that 'configure' works.
236 (substitute* "autogen.sh" (("/bin/sh") sh))
237 (setenv "CONFIG_SHELL" sh)
238 (invoke "./autogen.sh")))
241 ;; Run tests after installation so compilation only happens once.
243 (add-after 'install 'wrap-executable
244 (lambda* (#:key outputs #:allow-other-keys)
245 (let* ((out (assoc-ref outputs "out"))
246 (path (getenv "PATH")))
247 (wrap-program (string-append out "/bin/bamm")
248 `("PATH" ":" prefix (,path))))
250 (add-after 'wrap-executable 'post-install-check
251 (lambda* (#:key inputs outputs #:allow-other-keys)
253 (string-append (assoc-ref outputs "out")
258 (assoc-ref outputs "out")
260 (string-take (string-take-right
261 (assoc-ref inputs "python") 5) 3)
263 (getenv "PYTHONPATH")))
264 ;; There are 2 errors printed, but they are safe to ignore:
265 ;; 1) [E::hts_open_format] fail to open file ...
266 ;; 2) samtools view: failed to open ...
270 `(("autoconf" ,autoconf)
271 ("automake" ,automake)
274 ("python-nose" ,python2-nose)
275 ("python-pysam" ,python2-pysam)))
277 `(("htslib" ,htslib-1.3) ; At least one test fails on htslib-1.4+.
278 ("samtools" ,samtools)
282 ("coreutils" ,coreutils)))
284 `(("python-numpy" ,python2-numpy)))
285 (home-page "https://ecogenomics.github.io/BamM/")
286 (synopsis "Metagenomics-focused BAM file manipulator")
288 "BamM is a C library, wrapped in python, to efficiently generate and
289 parse BAM files, specifically for the analysis of metagenomic data. For
290 instance, it implements several methods to assess contig-wise read coverage.")
291 (license license:lgpl3+)))
293 (define-public bamtools
300 (url "https://github.com/pezmaster31/bamtools")
301 (commit (string-append "v" version))))
302 (file-name (git-file-name name version))
305 "0nfb2ypcx9959xnbz6wxh6py3xfizgmg8nrknxl95c507m9hmq8b"))))
306 (build-system cmake-build-system)
308 `(#:tests? #f ;no "check" target
310 (modify-phases %standard-phases
312 'configure 'set-ldflags
313 (lambda* (#:key outputs #:allow-other-keys)
317 (assoc-ref outputs "out") "/lib/bamtools"))
319 (inputs `(("zlib" ,zlib)))
320 (home-page "https://github.com/pezmaster31/bamtools")
321 (synopsis "C++ API and command-line toolkit for working with BAM data")
323 "BamTools provides both a C++ API and a command-line toolkit for handling
325 (license license:expat)))
327 (define-public bcftools
333 (uri (string-append "https://github.com/samtools/bcftools/"
335 version "/bcftools-" version ".tar.bz2"))
338 "0r508mp15pqzf8r1269kb4v5naw9zsvbwd3cz8s1yj7carsf9viw"))
339 (modules '((guix build utils)))
341 ;; Delete bundled htslib.
342 (delete-file-recursively "htslib-1.11")
344 (build-system gnu-build-system)
347 (list "--enable-libgsl")
350 (modify-phases %standard-phases
351 (add-before 'check 'patch-tests
353 (substitute* "test/test.pl"
354 (("/bin/bash") (which "bash")))
362 (home-page "https://samtools.github.io/bcftools/")
363 (synopsis "Utilities for variant calling and manipulating VCFs and BCFs")
365 "BCFtools is a set of utilities that manipulate variant calls in the
366 Variant Call Format (VCF) and its binary counterpart BCF. All commands work
367 transparently with both VCFs and BCFs, both uncompressed and BGZF-compressed.")
368 ;; The sources are dual MIT/GPL, but becomes GPL-only when USE_GPL=1.
369 (license (list license:gpl3+ license:expat))))
371 (define-public bcftools-1.9
372 (package (inherit bcftools)
377 (uri (string-append "https://github.com/samtools/bcftools/"
379 version "/bcftools-" version ".tar.bz2"))
382 "1j3h638i8kgihzyrlnpj82xg1b23sijibys9hvwari3fy7kd0dkg"))
383 (modules '((guix build utils)))
385 ;; Delete bundled htslib.
386 (delete-file-recursively "htslib-1.9")
388 (build-system gnu-build-system)
390 `(("htslib" ,htslib-1.9)
393 (define-public bedops
400 (url "https://github.com/bedops/bedops")
401 (commit (string-append "v" version))))
402 (file-name (git-file-name name version))
405 "0mmgsgwz5r9w76hzgxkxc9s9lkdhhaf7vr6i02b09vbswvs1fyqx"))))
406 (build-system gnu-build-system)
409 #:make-flags (list (string-append "BINDIR=" %output "/bin"))
411 (modify-phases %standard-phases
412 (add-after 'unpack 'unpack-tarballs
414 ;; FIXME: Bedops includes tarballs of minimally patched upstream
415 ;; libraries jansson, zlib, and bzip2. We cannot just use stock
416 ;; libraries because at least one of the libraries (zlib) is
417 ;; patched to add a C++ function definition (deflateInit2cpp).
418 ;; Until the Bedops developers offer a way to link against system
419 ;; libraries we have to build the in-tree copies of these three
422 ;; See upstream discussion:
423 ;; https://github.com/bedops/bedops/issues/124
425 ;; Unpack the tarballs to benefit from shebang patching.
426 (with-directory-excursion "third-party"
427 (invoke "tar" "xvf" "jansson-2.6.tar.bz2")
428 (invoke "tar" "xvf" "zlib-1.2.7.tar.bz2")
429 (invoke "tar" "xvf" "bzip2-1.0.6.tar.bz2"))
430 ;; Disable unpacking of tarballs in Makefile.
431 (substitute* "system.mk/Makefile.linux"
432 (("^\tbzcat .*") "\t@echo \"not unpacking\"\n")
433 (("\\./configure") "CONFIG_SHELL=bash ./configure"))
434 (substitute* "third-party/zlib-1.2.7/Makefile.in"
435 (("^SHELL=.*$") "SHELL=bash\n"))
437 (delete 'configure))))
438 (home-page "https://github.com/bedops/bedops")
439 (synopsis "Tools for high-performance genomic feature operations")
441 "BEDOPS is a suite of tools to address common questions raised in genomic
442 studies---mostly with regard to overlap and proximity relationships between
443 data sets. It aims to be scalable and flexible, facilitating the efficient
444 and accurate analysis and management of large-scale genomic data.
446 BEDOPS provides tools that perform highly efficient and scalable Boolean and
447 other set operations, statistical calculations, archiving, conversion and
448 other management of genomic data of arbitrary scale. Tasks can be easily
449 split by chromosome for distributing whole-genome analyses across a
450 computational cluster.")
451 (license license:gpl2+)))
453 (define-public bedtools
459 (uri (string-append "https://github.com/arq5x/bedtools2/releases/"
460 "download/v" version "/"
461 "bedtools-" version ".tar.gz"))
464 "0m3hk6548846w83a9s5drsczvy67n2azx41kj71n03klb2gbzwg3"))))
465 (build-system gnu-build-system)
467 '(#:test-target "test"
469 (list (string-append "prefix=" (assoc-ref %outputs "out")))
471 (modify-phases %standard-phases
472 (delete 'configure))))
474 `(("python" ,python-wrapper)))
476 `(("samtools" ,samtools-1.9)
478 (home-page "https://github.com/arq5x/bedtools2")
479 (synopsis "Tools for genome analysis and arithmetic")
481 "Collectively, the bedtools utilities are a swiss-army knife of tools for
482 a wide-range of genomics analysis tasks. The most widely-used tools enable
483 genome arithmetic: that is, set theory on the genome. For example, bedtools
484 allows one to intersect, merge, count, complement, and shuffle genomic
485 intervals from multiple files in widely-used genomic file formats such as BAM,
487 (license license:expat)))
489 ;; Later releases of bedtools produce files with more columns than
490 ;; what Ribotaper expects.
491 (define-public bedtools-2.18
492 (package (inherit bedtools)
497 (uri (string-append "https://github.com/arq5x/bedtools2/"
498 "releases/download/v" version
499 "/bedtools-" version ".tar.gz"))
502 "11rvca19ncg03kxd0wzlfx5ws7r3nisd0z8s9j9n182d8ksp2pxz"))))
504 '(#:test-target "test"
506 (modify-phases %standard-phases
509 (lambda* (#:key outputs #:allow-other-keys)
510 (let ((bin (string-append (assoc-ref outputs "out") "/bin/")))
511 (for-each (lambda (file)
512 (install-file file bin))
513 (find-files "bin" ".*")))
523 (url "https://github.com/PacificBiosciences/pbbam")
525 (file-name (git-file-name name version))
528 "0h9gkrpf2lrxklxp72xfl5bi3h5zcm5hprrya9gf0hr3xwlbpp0x"))))
529 (build-system meson-build-system)
532 (modify-phases %standard-phases
533 (add-after 'unpack 'find-googletest
534 (lambda* (#:key inputs #:allow-other-keys)
535 ;; It doesn't find gtest_main because there's no pkg-config file
536 ;; for it. Find it another way.
537 (substitute* "tests/meson.build"
538 (("pbbam_gtest_dep = dependency\\('gtest_main'.*")
539 (format #f "cpp = meson.get_compiler('cpp')
540 pbbam_gtest_dep = cpp.find_library('gtest_main', dirs : '~a')\n"
541 (assoc-ref inputs "googletest"))))
543 ;; TODO: tests/pbbam_test cannot be linked
544 ;; ld: tests/59830eb@@pbbam_test@exe/src_test_Accuracy.cpp.o:
545 ;; undefined reference to symbol '_ZTIN7testing4TestE'
546 ;; ld: /gnu/store/...-googletest-1.8.0/lib/libgtest.so:
547 ;; error adding symbols: DSO missing from command line
549 #:configure-flags '("-Dtests=false")))
550 ;; These libraries are listed as "Required" in the pkg-config file.
556 ("samtools" ,samtools)))
558 `(("googletest" ,googletest)
559 ("pkg-config" ,pkg-config)
560 ("python" ,python-wrapper))) ; for tests
561 (home-page "https://github.com/PacificBiosciences/pbbam")
562 (synopsis "Work with PacBio BAM files")
564 "The pbbam software package provides components to create, query, and
565 edit PacBio BAM files and associated indices. These components include a core
566 C++ library, bindings for additional languages, and command-line utilities.
567 This library is not intended to be used as a general-purpose BAM utility - all
568 input and output BAMs must adhere to the PacBio BAM format specification.
569 Non-PacBio BAMs will cause exceptions to be thrown.")
570 (license license:bsd-3)))
572 (define-public blasr-libcpp
574 (name "blasr-libcpp")
579 (url "https://github.com/PacificBiosciences/blasr_libcpp")
581 (file-name (git-file-name name version))
584 "0cn5l42zyq67sj0g2imqkhayz2iqvv0a1pgpbmlq0qynjmsrbfd2"))))
585 (build-system meson-build-system)
588 (modify-phases %standard-phases
589 (add-after 'unpack 'link-with-hdf5
590 (lambda* (#:key inputs #:allow-other-keys)
591 (let ((hdf5 (assoc-ref inputs "hdf5")))
592 (substitute* "meson.build"
593 (("libblasr_deps = \\[" m)
596 (format #f "cpp.find_library('hdf5', dirs : '~a'), \
597 cpp.find_library('hdf5_cpp', dirs : '~a'), "
600 (add-after 'unpack 'find-googletest
601 (lambda* (#:key inputs #:allow-other-keys)
602 ;; It doesn't find gtest_main because there's no pkg-config file
603 ;; for it. Find it another way.
604 (substitute* "unittest/meson.build"
605 (("libblasr_gtest_dep = dependency\\('gtest_main'.*")
606 (format #f "cpp = meson.get_compiler('cpp')
607 libblasr_gtest_dep = cpp.find_library('gtest_main', dirs : '~a')\n"
608 (assoc-ref inputs "googletest"))))
610 ;; TODO: unittest/libblasr_unittest cannot be linked
611 ;; ld: ;; unittest/df08227@@libblasr_unittest@exe/alignment_utils_FileUtils_gtest.cpp.o:
612 ;; undefined reference to symbol
613 ;; '_ZN7testing8internal9DeathTest6CreateEPKcPKNS0_2REES3_iPPS1_'
614 ;; ld: /gnu/store/...-googletest-1.8.0/lib/libgtest.so:
615 ;; error adding symbols: DSO missing from command line
617 #:configure-flags '("-Dtests=false")))
624 `(("googletest" ,googletest)
625 ("pkg-config" ,pkg-config)))
626 (home-page "https://github.com/PacificBiosciences/blasr_libcpp")
627 (synopsis "Library for analyzing PacBio genomic sequences")
629 "This package provides three libraries used by applications for analyzing
630 PacBio genomic sequences. This library contains three sub-libraries: pbdata,
632 (license license:bsd-3)))
641 (url "https://github.com/PacificBiosciences/blasr")
643 (file-name (git-file-name name version))
646 "1skgy2mvz8gsgfh1gc2nfgwvpyzb1hpmp2cf2773h5wsj8nw22kl"))))
647 (build-system meson-build-system)
650 (modify-phases %standard-phases
651 (add-after 'unpack 'link-with-hdf5
652 (lambda* (#:key inputs #:allow-other-keys)
653 (let ((hdf5 (assoc-ref inputs "hdf5")))
654 (substitute* "meson.build"
655 (("blasr_deps = \\[" m)
658 (format #f "cpp.find_library('hdf5', dirs : '~a'), \
659 cpp.find_library('hdf5_cpp', dirs : '~a'), "
662 ;; Tests require "cram" executable, which is not packaged.
664 #:configure-flags '("-Dtests=false")))
667 ("blasr-libcpp" ,blasr-libcpp)
672 `(("pkg-config" ,pkg-config)))
673 (home-page "https://github.com/PacificBiosciences/blasr")
674 (synopsis "PacBio long read aligner")
676 "Blasr is a genomic sequence aligner for processing PacBio long reads.")
677 (license license:bsd-3)))
679 (define-public ribotaper
685 (uri (string-append "https://ohlerlab.mdc-berlin.de/"
686 "files/RiboTaper/RiboTaper_Version_"
690 "0ykjbps1y3z3085q94npw8i9x5gldc6shy8vlc08v76zljsm07hv"))))
691 (build-system gnu-build-system)
694 (modify-phases %standard-phases
695 (add-after 'install 'wrap-executables
696 (lambda* (#:key inputs outputs #:allow-other-keys)
697 (let* ((out (assoc-ref outputs "out")))
700 (wrap-program (string-append out "/bin/" script)
701 `("R_LIBS_SITE" ":" = (,(getenv "R_LIBS_SITE")))))
702 '("create_annotations_files.bash"
703 "create_metaplots.bash"
704 "Ribotaper_ORF_find.sh"
708 `(("bedtools" ,bedtools-2.18)
709 ("samtools" ,samtools-0.1)
710 ("r-minimal" ,r-minimal)
711 ("r-foreach" ,r-foreach)
712 ("r-xnomial" ,r-xnomial)
714 ("r-multitaper" ,r-multitaper)
715 ("r-seqinr" ,r-seqinr)))
716 (home-page "https://ohlerlab.mdc-berlin.de/software/RiboTaper_126/")
717 (synopsis "Define translated ORFs using ribosome profiling data")
719 "Ribotaper is a method for defining translated @dfn{open reading
720 frames} (ORFs) using ribosome profiling (ribo-seq) data. This package
721 provides the Ribotaper pipeline.")
722 (license license:gpl3+)))
724 (define-public ribodiff
732 (url "https://github.com/ratschlab/RiboDiff")
733 (commit (string-append "v" version))))
734 (file-name (git-file-name name version))
737 "0x75nlp7qnmm64jasbi6l21f2cy99r2cjyl6b4hr8zf2bq22drnz"))))
738 (build-system python-build-system)
742 (modify-phases %standard-phases
743 ;; Generate an installable executable script wrapper.
744 (add-after 'unpack 'patch-setup.py
746 (substitute* "setup.py"
747 (("^(.*)packages=.*" line prefix)
748 (string-append line "\n"
749 prefix "scripts=['scripts/TE.py'],\n")))
752 `(("python-numpy" ,python2-numpy)
753 ("python-matplotlib" ,python2-matplotlib)
754 ("python-scipy" ,python2-scipy)
755 ("python-statsmodels" ,python2-statsmodels)))
757 `(("python-mock" ,python2-mock)
758 ("python-nose" ,python2-nose)))
759 (home-page "https://public.bmi.inf.ethz.ch/user/zhongy/RiboDiff/")
760 (synopsis "Detect translation efficiency changes from ribosome footprints")
761 (description "RiboDiff is a statistical tool that detects the protein
762 translational efficiency change from Ribo-Seq (ribosome footprinting) and
763 RNA-Seq data. It uses a generalized linear model to detect genes showing
764 difference in translational profile taking mRNA abundance into account. It
765 facilitates us to decipher the translational regulation that behave
766 independently with transcriptional regulation.")
767 (license license:gpl3+)))
769 (define-public bioawk
776 (url "https://github.com/lh3/bioawk")
777 (commit (string-append "v" version))))
778 (file-name (git-file-name name version))
781 "1pxc3zdnirxbf9a0az698hd8xdik7qkhypm7v6hn922x8y9qmspm"))))
782 (build-system gnu-build-system)
788 `(#:tests? #f ; There are no tests to run.
789 ;; Bison must generate files, before other targets can build.
792 (modify-phases %standard-phases
793 (delete 'configure) ; There is no configure phase.
795 (lambda* (#:key outputs #:allow-other-keys)
796 (let* ((out (assoc-ref outputs "out"))
797 (bin (string-append out "/bin"))
798 (man (string-append out "/share/man/man1")))
800 (copy-file "awk.1" (string-append man "/bioawk.1"))
801 (install-file "bioawk" bin))
803 (home-page "https://github.com/lh3/bioawk")
804 (synopsis "AWK with bioinformatics extensions")
805 (description "Bioawk is an extension to Brian Kernighan's awk, adding the
806 support of several common biological data formats, including optionally gzip'ed
807 BED, GFF, SAM, VCF, FASTA/Q and TAB-delimited formats with column names. It
808 also adds a few built-in functions and a command line option to use TAB as the
809 input/output delimiter. When the new functionality is not used, bioawk is
810 intended to behave exactly the same as the original BWK awk.")
811 (license license:x11)))
813 (define-public python-pybedtools
815 (name "python-pybedtools")
819 (uri (pypi-uri "pybedtools" version))
822 "14w5i40gi25clrr7h4wa2pcpnyipya8hrqi7nq77553zc5wf0df0"))))
823 (build-system python-build-system)
825 `(#:modules ((ice-9 ftw)
829 (guix build python-build-system))
830 ;; See https://github.com/daler/pybedtools/issues/192
832 (modify-phases %standard-phases
833 (add-after 'unpack 'disable-broken-tests
835 (substitute* "pybedtools/test/test_scripts.py"
836 ;; This test freezes.
837 (("def test_intron_exon_reads")
838 "def _do_not_test_intron_exon_reads")
839 ;; This test fails in the Python 2 build.
840 (("def test_venn_mpl")
841 "def _do_not_test_venn_mpl"))
842 (substitute* "pybedtools/test/test_helpers.py"
843 ;; Requires internet access.
844 (("def test_chromsizes")
845 "def _do_not_test_chromsizes")
846 ;; Broken as a result of the workaround used in the check phase
847 ;; (see: https://github.com/daler/pybedtools/issues/192).
848 (("def test_getting_example_beds")
849 "def _do_not_test_getting_example_beds"))
850 ;; This issue still occurs on python2
851 (substitute* "pybedtools/test/test_issues.py"
852 (("def test_issue_303")
853 "def _test_issue_303"))
855 ;; TODO: Remove phase after it's part of PYTHON-BUILD-SYSTEM.
857 ;; Force the Cythonization of C++ files to guard against compilation
859 (add-after 'unpack 'remove-cython-generated-files
861 (let ((cython-sources (map (cut string-drop-right <> 4)
862 (find-files "." "\\.pyx$")))
863 (c/c++-files (find-files "." "\\.(c|cpp|cxx)$")))
864 (define (strip-extension filename)
865 (string-take filename (string-index-right filename #\.)))
866 (define (cythonized? c/c++-file)
867 (member (strip-extension c/c++-file) cython-sources))
868 (for-each delete-file (filter cythonized? c/c++-files))
870 (add-after 'remove-cython-generated-files 'generate-cython-extensions
872 (invoke "python" "setup.py" "cythonize")))
875 (let* ((cwd (getcwd))
876 (build-root-directory (string-append cwd "/build/"))
877 (build (string-append
879 (find (cut string-prefix? "lib" <>)
880 (scandir (string-append
881 build-root-directory)))))
882 (scripts (string-append
884 (find (cut string-prefix? "scripts" <>)
885 (scandir build-root-directory)))))
887 (string-append build ":" (getenv "PYTHONPATH")))
888 ;; Executable scripts such as 'intron_exon_reads.py' must be
889 ;; available in the PATH.
891 (string-append scripts ":" (getenv "PATH"))))
892 ;; The tests need to be run from elsewhere...
893 (mkdir-p "/tmp/test")
894 (copy-recursively "pybedtools/test" "/tmp/test")
895 (with-directory-excursion "/tmp/test"
896 (invoke "pytest" "-v" "--doctest-modules")))))))
898 `(("bedtools" ,bedtools)
899 ("samtools" ,samtools)
900 ("python-matplotlib" ,python-matplotlib)
901 ("python-pysam" ,python-pysam)
902 ("python-pyyaml" ,python-pyyaml)))
904 `(("python-numpy" ,python-numpy)
905 ("python-pandas" ,python-pandas)
906 ("python-cython" ,python-cython)
907 ("kentutils" ,kentutils) ; for bedGraphToBigWig
908 ("python-six" ,python-six)
909 ;; For the test suite.
910 ("python-pytest" ,python-pytest)
911 ("python-psutil" ,python-psutil)))
912 (home-page "https://pythonhosted.org/pybedtools/")
913 (synopsis "Python wrapper for BEDtools programs")
915 "pybedtools is a Python wrapper for Aaron Quinlan's BEDtools programs,
916 which are widely used for genomic interval manipulation or \"genome algebra\".
917 pybedtools extends BEDTools by offering feature-level manipulations from with
919 (license license:gpl2+)))
921 (define-public python2-pybedtools
922 (let ((pybedtools (package-with-python2 python-pybedtools)))
926 `(("python2-pathlib" ,python2-pathlib)
927 ,@(package-native-inputs pybedtools))))))
929 (define-public python-biom-format
931 (name "python-biom-format")
936 ;; Use GitHub as source because PyPI distribution does not contain
937 ;; test data: https://github.com/biocore/biom-format/issues/693
939 (url "https://github.com/biocore/biom-format")
941 (file-name (git-file-name name version))
944 "1rna16lyk5aqhnv0dp77wwaplias93f1vw28ad3jmyw6hwkai05v"))
945 (modules '((guix build utils)))
947 ;; Delete generated C files.
948 (for-each delete-file (find-files "." "\\.c"))
950 (build-system python-build-system)
953 (modify-phases %standard-phases
954 (add-after 'unpack 'use-cython
955 (lambda _ (setenv "USE_CYTHON" "1") #t))
956 (add-after 'unpack 'disable-broken-tests
958 (substitute* "biom/tests/test_cli/test_validate_table.py"
959 (("^(.+)def test_invalid_hdf5" m indent)
960 (string-append indent
961 "@npt.dec.skipif(True, msg='Guix')\n"
963 (substitute* "biom/tests/test_table.py"
964 (("^(.+)def test_from_hdf5_issue_731" m indent)
965 (string-append indent
966 "@npt.dec.skipif(True, msg='Guix')\n"
969 (add-before 'reset-gzip-timestamps 'make-files-writable
970 (lambda* (#:key outputs #:allow-other-keys)
971 (let ((out (assoc-ref outputs "out")))
972 (for-each (lambda (file) (chmod file #o644))
973 (find-files out "\\.gz"))
976 `(("python-numpy" ,python-numpy)
977 ("python-scipy" ,python-scipy)
978 ("python-flake8" ,python-flake8)
979 ("python-future" ,python-future)
980 ("python-click" ,python-click)
981 ("python-h5py" ,python-h5py)
982 ;; FIXME: Upgrade to pandas 1.0 when
983 ;; https://github.com/biocore/biom-format/issues/837 is resolved.
984 ("python-pandas" ,python-pandas-0.25)))
986 `(("python-cython" ,python-cython)
987 ("python-pytest" ,python-pytest)
988 ("python-pytest-cov" ,python-pytest-cov)
989 ("python-nose" ,python-nose)))
990 (home-page "http://www.biom-format.org")
991 (synopsis "Biological Observation Matrix (BIOM) format utilities")
993 "The BIOM file format is designed to be a general-use format for
994 representing counts of observations e.g. operational taxonomic units, KEGG
995 orthology groups or lipid types, in one or more biological samples
996 e.g. microbiome samples, genomes, metagenomes.")
997 (license license:bsd-3)
998 (properties `((python2-variant . ,(delay python2-biom-format))))))
1000 (define-public python2-biom-format
1001 (let ((base (package-with-python2 (strip-python2-variant python-biom-format))))
1005 (substitute-keyword-arguments (package-arguments base)
1007 `(modify-phases ,phases
1008 ;; Do not require the unmaintained pyqi library.
1009 (add-after 'unpack 'remove-pyqi
1011 (substitute* "setup.py"
1012 (("install_requires.append\\(\"pyqi\"\\)") "pass"))
1015 (define-public python-pairtools
1017 (name "python-pairtools")
1022 (url "https://github.com/mirnylab/pairtools")
1023 (commit (string-append "v" version))))
1024 (file-name (git-file-name name version))
1027 "0gr8y13q7sd6yai6df4aavl2470n1f9s3cib6r473z4hr8hcbwmc"))))
1028 (build-system python-build-system)
1031 (modify-phases %standard-phases
1032 (add-after 'unpack 'fix-references
1034 (substitute* '("pairtools/pairtools_merge.py"
1035 "pairtools/pairtools_sort.py")
1036 (("/bin/bash") (which "bash")))
1039 (lambda* (#:key inputs outputs #:allow-other-keys)
1040 (add-installed-pythonpath inputs outputs)
1041 (with-directory-excursion "/tmp"
1042 (invoke "pytest" "-v")))))))
1044 `(("python-cython" ,python-cython)
1045 ("python-nose" ,python-nose)
1046 ("python-pytest" ,python-pytest)))
1048 `(("python" ,python-wrapper)))
1050 `(("htslib" ,htslib) ; for bgzip, looked up in PATH
1051 ("samtools" ,samtools) ; looked up in PATH
1052 ("lz4" ,lz4) ; for lz4c
1053 ("python-click" ,python-click)
1054 ("python-numpy" ,python-numpy)))
1055 (home-page "https://github.com/mirnylab/pairtools")
1056 (synopsis "Process mapped Hi-C data")
1057 (description "Pairtools is a simple and fast command-line framework to
1058 process sequencing data from a Hi-C experiment. Process pair-end sequence
1059 alignments and perform the following operations:
1062 @item detect ligation junctions (a.k.a. Hi-C pairs) in aligned paired-end
1063 sequences of Hi-C DNA molecules
1064 @item sort @code{.pairs} files for downstream analyses
1065 @item detect, tag and remove PCR/optical duplicates
1066 @item generate extensive statistics of Hi-C datasets
1067 @item select Hi-C pairs given flexibly defined criteria
1068 @item restore @code{.sam} alignments from Hi-C pairs.
1071 (license license:expat)))
1073 (define-public bioperl-minimal
1074 (let* ((inputs `(("perl-module-build" ,perl-module-build)
1075 ("perl-data-stag" ,perl-data-stag)
1076 ("perl-libwww" ,perl-libwww)
1077 ("perl-uri" ,perl-uri)))
1079 (map (compose package-name cadr)
1082 (map (compose package-transitive-target-inputs cadr) inputs))))))
1084 (name "bioperl-minimal")
1090 (url "https://github.com/bioperl/bioperl-live")
1091 (commit (string-append "release-"
1092 (string-map (lambda (c)
1094 #\- c)) version)))))
1095 (file-name (git-file-name name version))
1098 "0wl8yvzcls59pwwk6m8ahy87pwg6nnibzy5cldbvmcwg2x2w7783"))))
1099 (build-system perl-build-system)
1102 (modify-phases %standard-phases
1104 'install 'wrap-programs
1105 (lambda* (#:key outputs #:allow-other-keys)
1106 ;; Make sure all executables in "bin" find the required Perl
1107 ;; modules at runtime. As the PERL5LIB variable contains also
1108 ;; the paths of native inputs, we pick the transitive target
1109 ;; inputs from %build-inputs.
1110 (let* ((out (assoc-ref outputs "out"))
1111 (bin (string-append out "/bin/"))
1113 (cons (string-append out "/lib/perl5/site_perl")
1115 (assoc-ref %build-inputs name))
1116 ',transitive-inputs))
1118 (for-each (lambda (file)
1120 `("PERL5LIB" ":" prefix (,path))))
1121 (find-files bin "\\.pl$"))
1125 `(("perl-test-most" ,perl-test-most)))
1126 (home-page "https://metacpan.org/release/BioPerl")
1127 (synopsis "Bioinformatics toolkit")
1129 "BioPerl is the product of a community effort to produce Perl code which
1130 is useful in biology. Examples include Sequence objects, Alignment objects
1131 and database searching objects. These objects not only do what they are
1132 advertised to do in the documentation, but they also interact - Alignment
1133 objects are made from the Sequence objects, Sequence objects have access to
1134 Annotation and SeqFeature objects and databases, Blast objects can be
1135 converted to Alignment objects, and so on. This means that the objects
1136 provide a coordinated and extensible framework to do computational biology.")
1137 (license license:perl-license))))
1139 (define-public python-biopython
1141 (name "python-biopython")
1145 ;; use PyPi rather than biopython.org to ease updating
1146 (uri (pypi-uri "biopython" version))
1149 "0nz4n9d2y2dg849gn1z0vjlkwcpzzkzy3fij7x94a6ixy2c54z2a"))))
1150 (build-system python-build-system)
1153 (modify-phases %standard-phases
1154 (add-before 'check 'set-home
1155 ;; Some tests require a home directory to be set.
1156 (lambda _ (setenv "HOME" "/tmp") #t)))))
1158 `(("python-numpy" ,python-numpy)))
1159 (home-page "https://biopython.org/")
1160 (synopsis "Tools for biological computation in Python")
1162 "Biopython is a set of tools for biological computation including parsers
1163 for bioinformatics files into Python data structures; interfaces to common
1164 bioinformatics programs; a standard sequence class and tools for performing
1165 common operations on them; code to perform data classification; code for
1166 dealing with alignments; code making it easy to split up parallelizable tasks
1167 into separate processes; and more.")
1168 (license (license:non-copyleft "http://www.biopython.org/DIST/LICENSE"))))
1170 (define-public python2-biopython
1171 (package-with-python2 python-biopython))
1173 (define-public python-fastalite
1175 (name "python-fastalite")
1180 (uri (pypi-uri "fastalite" version))
1183 "1qli6pxp77i9xn2wfciq2zaxhl82bdxb33cpzqzj1z25yd036wqj"))))
1184 (build-system python-build-system)
1186 `(#:tests? #f)) ; Test data is not distributed.
1187 (home-page "https://github.com/nhoffman/fastalite")
1188 (synopsis "Simplest possible FASTA parser")
1189 (description "This library implements a FASTA and a FASTQ parser without
1190 relying on a complex dependency tree.")
1191 (license license:expat)))
1193 (define-public python2-fastalite
1194 (package-with-python2 python-fastalite))
1196 (define-public bpp-core
1197 ;; The last release was in 2014 and the recommended way to install from source
1198 ;; is to clone the git repository, so we do this.
1199 ;; http://biopp.univ-montp2.fr/wiki/index.php/Main_Page
1200 (let ((commit "7d8bced0d1a87291ea8dd7046b7fb5ff9c35c582"))
1203 (version (string-append "2.2.0-1." (string-take commit 7)))
1207 (url "http://biopp.univ-montp2.fr/git/bpp-core")
1209 (file-name (string-append name "-" version "-checkout"))
1212 "10djsq5vlnkilv436gnmh4irpk49v29pa69r6xiryg32xmvn909j"))))
1213 (build-system cmake-build-system)
1215 `(#:parallel-build? #f))
1216 (home-page "http://biopp.univ-montp2.fr")
1217 (synopsis "C++ libraries for Bioinformatics")
1219 "Bio++ is a set of C++ libraries for Bioinformatics, including sequence
1220 analysis, phylogenetics, molecular evolution and population genetics. It is
1221 Object Oriented and is designed to be both easy to use and computer efficient.
1222 Bio++ intends to help programmers to write computer expensive programs, by
1223 providing them a set of re-usable tools.")
1224 (license license:cecill-c))))
1226 (define-public bpp-phyl
1227 ;; The last release was in 2014 and the recommended way to install from source
1228 ;; is to clone the git repository, so we do this.
1229 ;; http://biopp.univ-montp2.fr/wiki/index.php/Main_Page
1230 (let ((commit "0c07167b629f68b569bf274d1ad0c4af83276ae2"))
1233 (version (string-append "2.2.0-1." (string-take commit 7)))
1237 (url "http://biopp.univ-montp2.fr/git/bpp-phyl")
1239 (file-name (string-append name "-" version "-checkout"))
1242 "1ssjgchzwj3iai26kyly7gwkdv8sk59nqhkb1wpap3sf5m6kyllh"))))
1243 (build-system cmake-build-system)
1245 `(#:parallel-build? #f
1246 ;; If out-of-source, test data is not copied into the build directory
1247 ;; so the tests fail.
1248 #:out-of-source? #f))
1250 `(("bpp-core" ,bpp-core)
1251 ("bpp-seq" ,bpp-seq)))
1252 (home-page "http://biopp.univ-montp2.fr")
1253 (synopsis "Bio++ phylogenetic Library")
1255 "Bio++ is a set of C++ libraries for Bioinformatics, including sequence
1256 analysis, phylogenetics, molecular evolution and population genetics. This
1257 library provides phylogenetics-related modules.")
1258 (license license:cecill-c))))
1260 (define-public bpp-popgen
1261 ;; The last release was in 2014 and the recommended way to install from source
1262 ;; is to clone the git repository, so we do this.
1263 ;; http://biopp.univ-montp2.fr/wiki/index.php/Main_Page
1264 (let ((commit "e472bac9b1a148803895d747cd6d0c5904f85d9f"))
1267 (version (string-append "2.2.0-1." (string-take commit 7)))
1271 (url "http://biopp.univ-montp2.fr/git/bpp-popgen")
1273 (file-name (string-append name "-" version "-checkout"))
1276 "0yn82dzn1n5629nzja68xfrhi655709rjanyryb36vzkmymy6dw5"))))
1277 (build-system cmake-build-system)
1279 `(#:parallel-build? #f
1280 #:tests? #f)) ; There are no tests.
1282 `(("bpp-core" ,bpp-core)
1283 ("bpp-seq" ,bpp-seq)))
1284 (home-page "http://biopp.univ-montp2.fr")
1285 (synopsis "Bio++ population genetics library")
1287 "Bio++ is a set of C++ libraries for Bioinformatics, including sequence
1288 analysis, phylogenetics, molecular evolution and population genetics. This
1289 library provides population genetics-related modules.")
1290 (license license:cecill-c))))
1292 (define-public bpp-seq
1293 ;; The last release was in 2014 and the recommended way to install from source
1294 ;; is to clone the git repository, so we do this.
1295 ;; http://biopp.univ-montp2.fr/wiki/index.php/Main_Page
1296 (let ((commit "6cfa07965ce152e5598a89df2fa80a75973bfa33"))
1299 (version (string-append "2.2.0-1." (string-take commit 7)))
1303 (url "http://biopp.univ-montp2.fr/git/bpp-seq")
1305 (file-name (string-append name "-" version "-checkout"))
1308 "1nys5jq7jqvdg40d91wsmj3q2yzy4276cp7sp44n67p468f27zf2"))))
1309 (build-system cmake-build-system)
1311 `(#:parallel-build? #f
1312 ;; If out-of-source, test data is not copied into the build directory
1313 ;; so the tests fail.
1314 #:out-of-source? #f))
1316 `(("bpp-core" ,bpp-core)))
1317 (home-page "http://biopp.univ-montp2.fr")
1318 (synopsis "Bio++ sequence library")
1320 "Bio++ is a set of C++ libraries for Bioinformatics, including sequence
1321 analysis, phylogenetics, molecular evolution and population genetics. This
1322 library provides sequence-related modules.")
1323 (license license:cecill-c))))
1325 (define-public bppsuite
1326 ;; The last release was in 2014 and the recommended way to install from source
1327 ;; is to clone the git repository, so we do this.
1328 ;; http://biopp.univ-montp2.fr/wiki/index.php/Main_Page
1329 (let ((commit "c516147f57aa50961121cd505bed52cd7603698b"))
1332 (version (string-append "2.2.0-1." (string-take commit 7)))
1336 (url "http://biopp.univ-montp2.fr/git/bppsuite")
1338 (file-name (string-append name "-" version "-checkout"))
1341 "1y87pxvw0jxjizhq2dr9g2r91md45k1p9ih2sl1yy1y3p934l2kb"))))
1342 (build-system cmake-build-system)
1344 `(#:parallel-build? #f
1345 #:tests? #f)) ; There are no tests.
1349 ("texinfo" ,texinfo)))
1351 `(("bpp-core" ,bpp-core)
1352 ("bpp-seq" ,bpp-seq)
1353 ("bpp-phyl" ,bpp-phyl)
1354 ("bpp-phyl" ,bpp-popgen)))
1355 (home-page "http://biopp.univ-montp2.fr")
1356 (synopsis "Bioinformatics tools written with the Bio++ libraries")
1358 "Bio++ is a set of C++ libraries for Bioinformatics, including sequence
1359 analysis, phylogenetics, molecular evolution and population genetics. This
1360 package provides command line tools using the Bio++ library.")
1361 (license license:cecill-c))))
1363 (define-public blast+
1370 "https://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/"
1371 version "/ncbi-blast-" version "+-src.tar.gz"))
1374 "0m0r9vkw631ky1za1wilsfk9k9spwqh22nkrb9a57rbwmrc1i3nq"))
1375 (modules '((guix build utils)))
1378 ;; Remove bundled bzip2, zlib and pcre.
1379 (delete-file-recursively "c++/src/util/compress/bzip2")
1380 (delete-file-recursively "c++/src/util/compress/zlib")
1381 (delete-file-recursively "c++/src/util/regexp")
1382 (substitute* "c++/src/util/compress/Makefile.in"
1383 (("bzip2 zlib api") "api"))
1384 ;; Remove useless msbuild directory
1385 (delete-file-recursively
1386 "c++/src/build-system/project_tree_builder/msbuild")
1388 (build-system gnu-build-system)
1390 `(;; There are two(!) tests for this massive library, and both fail with
1391 ;; "unparsable timing stats".
1392 ;; ERR [127] -- [serial/datatool] datatool.sh (unparsable timing stats)
1393 ;; ERR [127] -- [serial/datatool] datatool_xml.sh (unparsable timing stats)
1396 #:parallel-build? #f ; not supported
1398 (modify-phases %standard-phases
1399 (add-before 'configure 'set-HOME
1400 ;; $HOME needs to be set at some point during the configure phase
1401 (lambda _ (setenv "HOME" "/tmp") #t))
1402 (add-after 'unpack 'enter-dir
1403 (lambda _ (chdir "c++") #t))
1404 (add-after 'enter-dir 'fix-build-system
1406 (define (which* cmd)
1407 (cond ((string=? cmd "date")
1408 ;; make call to "date" deterministic
1413 (format (current-error-port)
1414 "WARNING: Unable to find absolute path for ~s~%"
1418 ;; Rewrite hardcoded paths to various tools
1419 (substitute* (append '("src/build-system/configure.ac"
1420 "src/build-system/configure"
1421 "src/build-system/helpers/run_with_lock.c"
1422 "scripts/common/impl/if_diff.sh"
1423 "scripts/common/impl/run_with_lock.sh"
1424 "src/build-system/Makefile.configurables.real"
1425 "src/build-system/Makefile.in.top"
1426 "src/build-system/Makefile.meta.gmake=no"
1427 "src/build-system/Makefile.meta.in"
1428 "src/build-system/Makefile.meta_l"
1429 "src/build-system/Makefile.meta_p"
1430 "src/build-system/Makefile.meta_r"
1431 "src/build-system/Makefile.mk.in"
1432 "src/build-system/Makefile.requirements"
1433 "src/build-system/Makefile.rules_with_autodep.in")
1434 (find-files "scripts/common/check" "\\.sh$"))
1435 (("(/usr/bin/|/bin/)([a-z][-_.a-z]*)" all dir cmd)
1436 (or (which* cmd) all)))
1438 (substitute* (find-files "src/build-system" "^config.*")
1439 (("LN_S=/bin/\\$LN_S") (string-append "LN_S=" (which "ln")))
1442 ;; rewrite "/var/tmp" in check script
1443 (substitute* "scripts/common/check/check_make_unix.sh"
1444 (("/var/tmp") "/tmp"))
1446 ;; do not reset PATH
1447 (substitute* (find-files "scripts/common/impl/" "\\.sh$")
1449 (("action=/bin/") "action=")
1450 (("export PATH") ":"))
1453 (lambda* (#:key inputs outputs #:allow-other-keys)
1454 (let ((out (assoc-ref outputs "out"))
1455 (lib (string-append (assoc-ref outputs "lib") "/lib"))
1456 (include (string-append (assoc-ref outputs "include")
1457 "/include/ncbi-tools++")))
1458 ;; The 'configure' script doesn't recognize things like
1459 ;; '--enable-fast-install'.
1460 (invoke "./configure.orig"
1461 (string-append "--with-build-root=" (getcwd) "/build")
1462 (string-append "--prefix=" out)
1463 (string-append "--libdir=" lib)
1464 (string-append "--includedir=" include)
1465 (string-append "--with-bz2="
1466 (assoc-ref inputs "bzip2"))
1467 (string-append "--with-z="
1468 (assoc-ref inputs "zlib"))
1469 (string-append "--with-pcre="
1470 (assoc-ref inputs "pcre"))
1471 ;; Each library is built twice by default, once
1472 ;; with "-static" in its name, and again
1477 (outputs '("out" ; 21 MB
1486 ("python" ,python-wrapper)))
1489 (home-page "https://blast.ncbi.nlm.nih.gov")
1490 (synopsis "Basic local alignment search tool")
1492 "BLAST is a popular method of performing a DNA or protein sequence
1493 similarity search, using heuristics to produce results quickly. It also
1494 calculates an “expect value” that estimates how many matches would have
1495 occurred at a given score by chance, which can aid a user in judging how much
1496 confidence to have in an alignment.")
1497 ;; Most of the sources are in the public domain, with the following
1500 ;; * ./c++/include/util/bitset/
1501 ;; * ./c++/src/html/ncbi_menu*.js
1503 ;; * ./c++/include/util/impl/floating_point_comparison.hpp
1505 ;; * ./c++/include/dbapi/driver/odbc/unix_odbc/
1507 ;; * ./c++/src/corelib/teamcity_*
1508 (license (list license:public-domain
1514 (define-public bless
1520 (uri (string-append "mirror://sourceforge/bless-ec/bless.v"
1524 "0rm0gw2s18dqwzzpl3c2x1z05ni2v0xz5dmfk3d33j6g4cgrlrdd"))
1525 (modules '((guix build utils)))
1528 ;; Remove bundled boost, pigz, zlib, and .git directory
1529 ;; FIXME: also remove bundled sources for murmurhash3 and
1530 ;; kmc once packaged.
1531 (delete-file-recursively "boost")
1532 (delete-file-recursively "pigz")
1533 (delete-file-recursively "google-sparsehash")
1534 (delete-file-recursively "zlib")
1535 (delete-file-recursively ".git")
1537 (build-system gnu-build-system)
1539 '(#:tests? #f ;no "check" target
1541 (list (string-append "ZLIB="
1542 (assoc-ref %build-inputs "zlib:static")
1544 (string-append "LDFLAGS="
1545 (string-join '("-lboost_filesystem"
1551 (modify-phases %standard-phases
1552 (add-after 'unpack 'do-not-build-bundled-pigz
1553 (lambda* (#:key inputs outputs #:allow-other-keys)
1554 (substitute* "Makefile"
1555 (("cd pigz/pigz-2.3.3; make") ""))
1557 (add-after 'unpack 'patch-paths-to-executables
1558 (lambda* (#:key inputs outputs #:allow-other-keys)
1559 (substitute* "parse_args.cpp"
1560 (("kmc_binary = .*")
1561 (string-append "kmc_binary = \""
1562 (assoc-ref outputs "out")
1564 (("pigz_binary = .*")
1565 (string-append "pigz_binary = \""
1566 (assoc-ref inputs "pigz")
1570 (lambda* (#:key outputs #:allow-other-keys)
1571 (let ((bin (string-append (assoc-ref outputs "out") "/bin/")))
1572 (for-each (lambda (file)
1573 (install-file file bin))
1574 '("bless" "kmc/bin/kmc"))
1576 (delete 'configure))))
1580 `(("openmpi" ,openmpi)
1582 ("sparsehash" ,sparsehash)
1584 ("zlib:static" ,zlib "static")
1586 (supported-systems '("x86_64-linux"))
1587 (home-page "https://sourceforge.net/p/bless-ec/wiki/Home/")
1588 (synopsis "Bloom-filter-based error correction tool for NGS reads")
1590 "@dfn{Bloom-filter-based error correction solution for high-throughput
1591 sequencing reads} (BLESS) uses a single minimum-sized bloom filter is a
1592 correction tool for genomic reads produced by @dfn{Next-generation
1593 sequencing} (NGS). BLESS produces accurate correction results with much less
1594 memory compared with previous solutions and is also able to tolerate a higher
1595 false-positive rate. BLESS can extend reads like DNA assemblers to correct
1596 errors at the end of reads.")
1597 (license license:gpl3+)))
1599 (define-public bowtie
1606 (url "https://github.com/BenLangmead/bowtie2")
1607 (commit (string-append "v" version))))
1608 (file-name (git-file-name name version))
1611 "1zl3cf327y2p7p03cavymbh7b00djc7lncfaqih33n96iy9q8ibp"))
1612 (modules '((guix build utils)))
1615 (substitute* "Makefile"
1616 ;; replace BUILD_HOST and BUILD_TIME for deterministic build
1617 (("-DBUILD_HOST=.*") "-DBUILD_HOST=\"\\\"guix\\\"\"")
1618 (("-DBUILD_TIME=.*") "-DBUILD_TIME=\"\\\"0\\\"\""))
1620 (build-system gnu-build-system)
1625 (string-append "prefix=" (assoc-ref %outputs "out")))
1627 (modify-phases %standard-phases
1632 "scripts/test/simple_tests.pl"
1633 "--bowtie2=./bowtie2"
1634 "--bowtie2-build=./bowtie2-build")
1639 ("python" ,python-wrapper)))
1642 ("perl-clone" ,perl-clone)
1643 ("perl-test-deep" ,perl-test-deep)
1644 ("perl-test-simple" ,perl-test-simple)))
1645 (home-page "http://bowtie-bio.sourceforge.net/bowtie2/index.shtml")
1646 (synopsis "Fast and sensitive nucleotide sequence read aligner")
1648 "Bowtie 2 is a fast and memory-efficient tool for aligning sequencing
1649 reads to long reference sequences. It is particularly good at aligning reads
1650 of about 50 up to 100s or 1,000s of characters, and particularly good at
1651 aligning to relatively long (e.g. mammalian) genomes. Bowtie 2 indexes the
1652 genome with an FM Index to keep its memory footprint small: for the human
1653 genome, its memory footprint is typically around 3.2 GB. Bowtie 2 supports
1654 gapped, local, and paired-end alignment modes.")
1655 (supported-systems '("x86_64-linux"))
1656 (license license:gpl3+)))
1658 (define-public bowtie1
1664 (uri (string-append "mirror://sourceforge/bowtie-bio/bowtie/"
1665 version "/bowtie-" version "-src.zip"))
1668 "11dbihdnrizc6qhx9xsw77w3q5ssx642alaqzvhxx32ak9glvq04"))
1669 (modules '((guix build utils)))
1671 '(substitute* "Makefile"
1672 ;; replace BUILD_HOST and BUILD_TIME for deterministic build
1673 (("-DBUILD_HOST=.*") "-DBUILD_HOST=\"\\\"guix\\\"\"")
1674 (("-DBUILD_TIME=.*") "-DBUILD_TIME=\"\\\"0\\\"\"")))))
1675 (build-system gnu-build-system)
1677 '(#:tests? #f ; no "check" target
1679 (list "CC=gcc" "all"
1680 (string-append "prefix=" (assoc-ref %outputs "out")))
1682 (modify-phases %standard-phases
1683 (delete 'configure))))
1685 `(("python-wrapper" ,python-wrapper)
1688 (supported-systems '("x86_64-linux"))
1689 (home-page "http://bowtie-bio.sourceforge.net/index.shtml")
1690 (synopsis "Fast aligner for short nucleotide sequence reads")
1692 "Bowtie is a fast, memory-efficient short read aligner. It aligns short
1693 DNA sequences (reads) to the human genome at a rate of over 25 million 35-bp
1694 reads per hour. Bowtie indexes the genome with a Burrows-Wheeler index to
1695 keep its memory footprint small: typically about 2.2 GB for the human
1696 genome (2.9 GB for paired-end).")
1697 (license license:artistic2.0)))
1699 (define-public tophat
1706 "http://ccb.jhu.edu/software/tophat/downloads/tophat-"
1710 "19add02kv2xhd6ihd779dr7x35ggym3jqr0m5c4315i1yfb0p11p"))
1711 (modules '((guix build utils)))
1714 ;; Remove bundled SeqAn and samtools
1715 (delete-file-recursively "src/SeqAn-1.4.2")
1716 (delete-file-recursively "src/samtools-0.1.18")
1718 (build-system gnu-build-system)
1720 '(#:parallel-build? #f ; not supported
1722 (modify-phases %standard-phases
1723 (add-after 'set-paths 'hide-default-gcc
1724 (lambda* (#:key inputs #:allow-other-keys)
1725 (let ((gcc (assoc-ref inputs "gcc")))
1726 ;; Remove the default GCC from CPLUS_INCLUDE_PATH to prevent
1727 ;; conflicts with the GCC 5 input.
1728 (setenv "CPLUS_INCLUDE_PATH"
1730 (delete (string-append gcc "/include/c++")
1731 (string-split (getenv "CPLUS_INCLUDE_PATH") #\:))
1734 (add-after 'unpack 'use-system-samtools
1735 (lambda* (#:key inputs #:allow-other-keys)
1736 (substitute* "src/Makefile.in"
1737 (("(noinst_LIBRARIES = )\\$\\(SAMLIB\\)" _ prefix) prefix)
1738 (("\\$\\(SAMPROG\\): \\$\\(SAMLIB\\)") "")
1739 (("SAMPROG = samtools_0\\.1\\.18") "")
1740 (("\\$\\(samtools_0_1_18_SOURCES\\)") "")
1741 (("am__EXEEXT_1 = samtools_0\\.1\\.18\\$\\(EXEEXT\\)") ""))
1742 (substitute* '("src/common.cpp"
1744 (("samtools_0.1.18") (which "samtools")))
1745 (substitute* '("src/common.h"
1746 "src/bam2fastx.cpp")
1747 (("#include \"bam.h\"") "#include <samtools/bam.h>")
1748 (("#include \"sam.h\"") "#include <samtools/sam.h>"))
1749 (substitute* '("src/bwt_map.h"
1751 "src/align_status.h")
1752 (("#include <bam.h>") "#include <samtools/bam.h>")
1753 (("#include <sam.h>") "#include <samtools/sam.h>"))
1756 `(("gcc@5" ,gcc-5))) ;; doesn't build with later versions
1760 ("ncurses" ,ncurses)
1762 ("python" ,python-2)
1763 ("samtools" ,samtools-0.1)
1766 (home-page "https://ccb.jhu.edu/software/tophat/index.shtml")
1767 (synopsis "Spliced read mapper for RNA-Seq data")
1769 "TopHat is a fast splice junction mapper for nucleotide sequence
1770 reads produced by the RNA-Seq method. It aligns RNA-Seq reads to
1771 mammalian-sized genomes using the ultra high-throughput short read
1772 aligner Bowtie, and then analyzes the mapping results to identify
1773 splice junctions between exons.")
1774 ;; TopHat is released under the Boost Software License, Version 1.0
1775 ;; See https://github.com/infphilo/tophat/issues/11#issuecomment-121589893
1776 (license license:boost1.0)))
1785 "https://github.com/lh3/bwa/releases/download/v"
1786 version "/bwa-" version ".tar.bz2"))
1789 "1zfhv2zg9v1icdlq4p9ssc8k01mca5d1bd87w71py2swfi74s6yy"))))
1790 (build-system gnu-build-system)
1792 '(#:tests? #f ;no "check" target
1794 (modify-phases %standard-phases
1796 (lambda* (#:key outputs #:allow-other-keys)
1797 (let* ((out (assoc-ref outputs "out"))
1798 (bin (string-append out "/bin"))
1799 (lib (string-append out "/lib"))
1800 (doc (string-append out "/share/doc/bwa"))
1801 (man (string-append out "/share/man/man1")))
1802 (install-file "bwa" bin)
1803 (install-file "libbwa.a" lib)
1804 (install-file "README.md" doc)
1805 (install-file "bwa.1" man))
1807 ;; no "configure" script
1808 (delete 'configure))))
1809 (inputs `(("zlib" ,zlib)))
1810 ;; Non-portable SSE instructions are used so building fails on platforms
1811 ;; other than x86_64.
1812 (supported-systems '("x86_64-linux"))
1813 (home-page "http://bio-bwa.sourceforge.net/")
1814 (synopsis "Burrows-Wheeler sequence aligner")
1816 "BWA is a software package for mapping low-divergent sequences against a
1817 large reference genome, such as the human genome. It consists of three
1818 algorithms: BWA-backtrack, BWA-SW and BWA-MEM. The first algorithm is
1819 designed for Illumina sequence reads up to 100bp, while the rest two for
1820 longer sequences ranged from 70bp to 1Mbp. BWA-MEM and BWA-SW share similar
1821 features such as long-read support and split alignment, but BWA-MEM, which is
1822 the latest, is generally recommended for high-quality queries as it is faster
1823 and more accurate. BWA-MEM also has better performance than BWA-backtrack for
1824 70-100bp Illumina reads.")
1825 (license license:gpl3+)))
1827 (define-public bwa-pssm
1828 (package (inherit bwa)
1834 (url "https://github.com/pkerpedjiev/bwa-pssm")
1836 (file-name (git-file-name name version))
1839 "076c4q0cdqz8jgylb067y9zmvxglppnzi3qiscn0xiypgc6lgb5r"))))
1840 (build-system gnu-build-system)
1845 (home-page "http://bwa-pssm.binf.ku.dk/")
1846 (synopsis "Burrows-Wheeler transform-based probabilistic short read mapper")
1848 "BWA-PSSM is a probabilistic short genomic sequence read aligner based on
1849 the use of @dfn{position specific scoring matrices} (PSSM). Like many of the
1850 existing aligners it is fast and sensitive. Unlike most other aligners,
1851 however, it is also adaptible in the sense that one can direct the alignment
1852 based on known biases within the data set. It is coded as a modification of
1853 the original BWA alignment program and shares the genome index structure as
1854 well as many of the command line options.")
1855 (license license:gpl3+)))
1857 (define-public bwa-meth
1864 (url "https://github.com/brentp/bwa-meth")
1865 (commit (string-append "v" version))))
1866 (file-name (git-file-name name version))
1869 "17j31i7zws5j7mhsq9x3qgkxly6mlmrgwhfq0qbflgxrmx04yaiz"))))
1870 (build-system python-build-system)
1873 (modify-phases %standard-phases
1874 (add-after 'unpack 'keep-references-to-bwa
1875 (lambda* (#:key inputs #:allow-other-keys)
1876 (substitute* "bwameth.py"
1877 (("bwa (mem|index)" _ command)
1878 (string-append (which "bwa") " " command))
1879 ;; There's an ill-advised check for "samtools" on PATH.
1885 `(("python-toolshed" ,python-toolshed)))
1886 (home-page "https://github.com/brentp/bwa-meth")
1887 (synopsis "Fast and accurante alignment of BS-Seq reads")
1889 "BWA-Meth works for single-end reads and for paired-end reads from the
1890 directional protocol (most common). It uses the method employed by
1891 methylcoder and Bismark of in silico conversion of all C's to T's in both
1892 reference and reads. It recovers the original read (needed to tabulate
1893 methylation) by attaching it as a comment which BWA appends as a tag to the
1894 read. It performs favorably to existing aligners gauged by number of on and
1895 off-target reads for a capture method that targets CpG-rich region.")
1896 (license license:expat)))
1898 (define-public python-bx-python
1900 (name "python-bx-python")
1904 (uri (pypi-uri "bx-python" version))
1907 "11kksg2rbzihpmcid823xvg42xi88m7sz58rzk29abybkxy0rszs"))))
1908 (build-system python-build-system)
1909 ;; Tests fail because test data are not included
1910 (arguments '(#:tests? #f))
1912 `(("python-numpy" ,python-numpy)
1913 ("python-six" ,python-six)))
1917 `(("python-lzo" ,python-lzo)
1918 ("python-nose" ,python-nose)
1919 ("python-cython" ,python-cython)))
1920 (home-page "https://github.com/bxlab/bx-python")
1921 (synopsis "Tools for manipulating biological data")
1923 "bx-python provides tools for manipulating biological data, particularly
1924 multiple sequence alignments.")
1925 (license license:expat)))
1927 (define-public python2-bx-python
1928 (package-with-python2 python-bx-python))
1930 (define-public python-pysam
1932 (name "python-pysam")
1936 ;; Test data is missing on PyPi.
1938 (url "https://github.com/pysam-developers/pysam")
1939 (commit (string-append "v" version))))
1940 (file-name (git-file-name name version))
1943 "1vj367w6xbn9bpmksm162l1aipf7cj97h1q83y7jcpm33ihwpf7x"))
1944 (modules '((guix build utils)))
1946 ;; Drop bundled htslib. TODO: Also remove samtools
1948 (delete-file-recursively "htslib")
1950 (build-system python-build-system)
1952 `(#:modules ((ice-9 ftw)
1954 (guix build python-build-system)
1957 (modify-phases %standard-phases
1958 (add-before 'build 'set-flags
1959 (lambda* (#:key inputs #:allow-other-keys)
1960 (setenv "HTSLIB_MODE" "external")
1961 (setenv "HTSLIB_LIBRARY_DIR"
1962 (string-append (assoc-ref inputs "htslib") "/lib"))
1963 (setenv "HTSLIB_INCLUDE_DIR"
1964 (string-append (assoc-ref inputs "htslib") "/include"))
1965 (setenv "LDFLAGS" "-lncurses")
1966 (setenv "CFLAGS" "-D_CURSES_LIB=1")
1969 (lambda* (#:key inputs outputs #:allow-other-keys)
1970 ;; This file contains tests that require a connection to the
1972 (delete-file "tests/tabix_test.py")
1973 ;; FIXME: This test fails
1974 (delete-file "tests/AlignmentFile_test.py")
1975 ;; Add first subdirectory of "build" directory to PYTHONPATH.
1976 (setenv "PYTHONPATH"
1978 (getenv "PYTHONPATH")
1979 ":" (getcwd) "/build/"
1980 (car (scandir "build"
1981 (negate (cut string-prefix? "." <>))))))
1982 ;; Step out of source dir so python does not import from CWD.
1983 (with-directory-excursion "tests"
1984 (setenv "HOME" "/tmp")
1985 (invoke "make" "-C" "pysam_data")
1986 (invoke "make" "-C" "cbcf_data")
1987 ;; Running nosetests without explicitly asking for a single
1988 ;; process leads to a crash. Running with multiple processes
1989 ;; fails because the tests are not designed to run in parallel.
1991 ;; FIXME: tests keep timing out on some systems.
1992 (invoke "nosetests" "-v" "--processes" "1")))))))
1994 `(("htslib" ,htslib-1.9))) ; Included from installed header files.
1996 `(("ncurses" ,ncurses)
2000 `(("python-cython" ,python-cython)
2001 ;; Dependencies below are are for tests only.
2002 ("samtools" ,samtools-1.9)
2003 ("bcftools" ,bcftools-1.9)
2004 ("python-nose" ,python-nose)))
2005 (home-page "https://github.com/pysam-developers/pysam")
2006 (synopsis "Python bindings to the SAMtools C API")
2008 "Pysam is a Python module for reading and manipulating files in the
2009 SAM/BAM format. Pysam is a lightweight wrapper of the SAMtools C API. It
2010 also includes an interface for tabix.")
2011 (license license:expat)))
2013 (define-public python2-pysam
2014 (package-with-python2 python-pysam))
2016 (define-public python-twobitreader
2018 (name "python-twobitreader")
2023 (url "https://github.com/benjschiller/twobitreader")
2025 (file-name (git-file-name name version))
2028 "1qbxvv1h58cismbk1anpjrkpghsaiy64a11ir3lhy6qch6xf8n62"))))
2029 (build-system python-build-system)
2030 ;; Tests are not included
2031 (arguments '(#:tests? #f))
2033 `(("python-sphinx" ,python-sphinx)))
2034 (home-page "https://github.com/benjschiller/twobitreader")
2035 (synopsis "Python library for reading .2bit files")
2037 "twobitreader is a Python library for reading .2bit files as used by the
2038 UCSC genome browser.")
2039 (license license:artistic2.0)))
2041 (define-public python2-twobitreader
2042 (package-with-python2 python-twobitreader))
2044 (define-public python-plastid
2046 (name "python-plastid")
2050 (uri (pypi-uri "plastid" version))
2053 "0l24dd3q66if8yj042m4s0g95n6acn7im1imqd3p6h8ns43kxhj8"))))
2054 (build-system python-build-system)
2056 ;; Some test files are not included.
2059 `(("python-numpy" ,python-numpy)
2060 ("python-scipy" ,python-scipy)
2061 ("python-pandas" ,python-pandas)
2062 ("python-pysam" ,python-pysam)
2063 ("python-matplotlib" ,python-matplotlib)
2064 ("python-biopython" ,python-biopython)
2065 ("python-twobitreader" ,python-twobitreader)
2066 ("python-termcolor" ,python-termcolor)))
2068 `(("python-cython" ,python-cython)
2069 ("python-nose" ,python-nose)))
2070 (home-page "https://github.com/joshuagryphon/plastid")
2071 (synopsis "Python library for genomic analysis")
2073 "plastid is a Python library for genomic analysis – in particular,
2074 high-throughput sequencing data – with an emphasis on simplicity.")
2075 (license license:bsd-3)))
2077 (define-public python2-plastid
2078 (package-with-python2 python-plastid))
2080 (define-public tetoolkit
2087 (url "https://github.com/mhammell-laboratory/tetoolkit")
2089 (file-name (git-file-name name version))
2092 "1yzi0kfpzip8zpjb82x1ik6h22yzfyjiz2dv85v6as2awwqvk807"))))
2093 (build-system python-build-system)
2095 `(#:python ,python-2 ; not guaranteed to work with Python 3
2097 (modify-phases %standard-phases
2098 (add-after 'unpack 'make-writable
2100 (for-each make-file-writable (find-files "."))
2102 (add-after 'unpack 'patch-invocations
2103 (lambda* (#:key inputs #:allow-other-keys)
2104 (substitute* '("bin/TEtranscripts"
2107 (string-append "'" (which "sort") " "))
2109 (string-append "'" (which "rm") " -f "))
2110 (("'Rscript'") (string-append "'" (which "Rscript") "'")))
2111 (substitute* "TEToolkit/IO/ReadInputs.py"
2112 (("BamToBED") (which "bamToBed")))
2113 (substitute* "TEToolkit/Normalization.py"
2115 (string-append "\"" (which "Rscript") "\"")))
2117 (add-after 'install 'wrap-program
2118 (lambda* (#:key outputs #:allow-other-keys)
2119 ;; Make sure the executables find R packages.
2120 (let ((out (assoc-ref outputs "out")))
2123 (wrap-program (string-append out "/bin/" script)
2124 `("R_LIBS_SITE" ":" = (,(getenv "R_LIBS_SITE")))))
2129 `(("coreutils" ,coreutils)
2130 ("bedtools" ,bedtools)
2131 ("python-argparse" ,python2-argparse)
2132 ("python-pysam" ,python2-pysam)
2133 ("r-minimal" ,r-minimal)
2134 ("r-deseq2" ,r-deseq2)))
2135 (home-page "https://github.com/mhammell-laboratory/tetoolkit")
2136 (synopsis "Transposable elements in differential enrichment analysis")
2138 "This is package for including transposable elements in differential
2139 enrichment analysis of sequencing datasets. TEtranscripts and TEcount take
2140 RNA-seq (and similar data) and annotates reads to both genes and transposable
2141 elements. TEtranscripts then performs differential analysis using DESeq2.
2142 Note that TEtranscripts and TEcount rely on specially curated GTF files, which
2143 are not included due to their size.")
2144 (license license:gpl3+)))
2146 (define-public cd-hit
2152 (uri (string-append "https://github.com/weizhongli/cdhit"
2153 "/releases/download/V" version
2155 "-2017-0621-source.tar.gz"))
2158 "1b4mwm2520ixjbw57sil20f9iixzw4bkdqqwgg1fc3pzm6rz4zmn"))))
2159 (build-system gnu-build-system)
2161 `(#:tests? #f ; there are no tests
2163 ;; Executables are copied directly to the PREFIX.
2164 (list (string-append "PREFIX=" (assoc-ref %outputs "out") "/bin")
2165 ;; Support longer sequences (e.g. Pacbio sequences)
2168 (modify-phases %standard-phases
2169 ;; No "configure" script
2171 ;; Remove sources of non-determinism
2172 (add-after 'unpack 'be-timeless
2174 (substitute* "cdhit-utility.c++"
2175 ((" \\(built on \" __DATE__ \"\\)") ""))
2176 (substitute* "cdhit-common.c++"
2177 (("__DATE__") "\"0\"")
2178 (("\", %s, \" __TIME__ \"\\\\n\", date") ""))
2180 ;; The "install" target does not create the target directory.
2181 (add-before 'install 'create-target-dir
2182 (lambda* (#:key outputs #:allow-other-keys)
2183 (mkdir-p (string-append (assoc-ref outputs "out") "/bin"))
2187 (home-page "http://weizhongli-lab.org/cd-hit/")
2188 (synopsis "Cluster and compare protein or nucleotide sequences")
2190 "CD-HIT is a program for clustering and comparing protein or nucleotide
2191 sequences. CD-HIT is designed to be fast and handle extremely large
2193 ;; The manual says: "It can be copied under the GNU General Public License
2194 ;; version 2 (GPLv2)."
2195 (license license:gpl2)))
2197 (define-public clipper
2204 (url "https://github.com/YeoLab/clipper")
2206 (file-name (git-file-name name version))
2209 "1bcag4lb5bkzsj2vg7lrq24aw6yfgq275ifrbhd82l7kqgbbjbkv"))))
2210 (build-system python-build-system)
2213 (modify-phases %standard-phases
2214 (add-before 'reset-gzip-timestamps 'make-files-writable
2215 (lambda* (#:key outputs #:allow-other-keys)
2216 ;; Make sure .gz files are writable so that the
2217 ;; 'reset-gzip-timestamps' phase can do its work.
2218 (let ((out (assoc-ref outputs "out")))
2219 (for-each make-file-writable
2220 (find-files out "\\.gz$"))
2224 ("python-pybedtools" ,python-pybedtools)
2225 ("python-cython" ,python-cython)
2226 ("python-scikit-learn" ,python-scikit-learn)
2227 ("python-matplotlib" ,python-matplotlib)
2228 ("python-pandas" ,python-pandas)
2229 ("python-pysam" ,python-pysam)
2230 ("python-numpy" ,python-numpy)
2231 ("python-scipy" ,python-scipy)))
2233 `(("python-setuptools-git" ,python-setuptools-git)
2234 ("python-mock" ,python-mock) ; for tests
2235 ("python-nose" ,python-nose) ; for tests
2236 ("python-pytz" ,python-pytz))) ; for tests
2237 (home-page "https://github.com/YeoLab/clipper")
2238 (synopsis "CLIP peak enrichment recognition")
2240 "CLIPper is a tool to define peaks in CLIP-seq datasets.")
2241 (license license:gpl2)))
2243 (define-public codingquarry
2245 (name "codingquarry")
2250 "mirror://sourceforge/codingquarry/CodingQuarry_v"
2254 "0115hkjflsnfzn36xppwf9h9avfxlavr43djqmshkkzbgjzsz60i"))))
2255 (build-system gnu-build-system)
2257 '(#:tests? #f ; no "check" target
2259 (modify-phases %standard-phases
2262 (lambda* (#:key outputs #:allow-other-keys)
2263 (let* ((out (assoc-ref outputs "out"))
2264 (bin (string-append out "/bin"))
2265 (doc (string-append out "/share/doc/codingquarry")))
2266 (install-file "INSTRUCTIONS.pdf" doc)
2267 (copy-recursively "QuarryFiles"
2268 (string-append out "/QuarryFiles"))
2269 (install-file "CodingQuarry" bin)
2270 (install-file "CufflinksGTF_to_CodingQuarryGFF3.py" bin))
2272 (inputs `(("openmpi" ,openmpi)))
2273 (native-search-paths
2274 (list (search-path-specification
2275 (variable "QUARRY_PATH")
2276 (files '("QuarryFiles")))))
2277 (native-inputs `(("python" ,python-2))) ; Only Python 2 is supported
2278 (synopsis "Fungal gene predictor")
2279 (description "CodingQuarry is a highly accurate, self-training GHMM fungal
2280 gene predictor designed to work with assembled, aligned RNA-seq transcripts.")
2281 (home-page "https://sourceforge.net/projects/codingquarry/")
2282 (license license:gpl3+)))
2284 (define-public couger
2291 "http://couger.oit.duke.edu/static/assets/COUGER"
2295 "04p2b14nmhzxw5h72mpzdhalv21bx4w9b87z0wpw0xzxpysyncmq"))))
2296 (build-system gnu-build-system)
2300 (modify-phases %standard-phases
2305 (lambda* (#:key outputs #:allow-other-keys)
2306 (let* ((out (assoc-ref outputs "out"))
2307 (bin (string-append out "/bin")))
2308 (copy-recursively "src" (string-append out "/src"))
2310 ;; Add "src" directory to module lookup path.
2311 (substitute* "couger"
2313 (string-append "import sys\nsys.path.append(\""
2314 out "\")\nfrom argparse")))
2315 (install-file "couger" bin))
2318 'install 'wrap-program
2319 (lambda* (#:key inputs outputs #:allow-other-keys)
2320 ;; Make sure 'couger' runs with the correct PYTHONPATH.
2321 (let* ((out (assoc-ref outputs "out"))
2322 (path (getenv "PYTHONPATH")))
2323 (wrap-program (string-append out "/bin/couger")
2324 `("PYTHONPATH" ":" prefix (,path))))
2327 `(("python" ,python-2)
2328 ("python2-pillow" ,python2-pillow)
2329 ("python2-numpy" ,python2-numpy)
2330 ("python2-scipy" ,python2-scipy)
2331 ("python2-matplotlib" ,python2-matplotlib)))
2333 `(("r-minimal" ,r-minimal)
2335 ("randomjungle" ,randomjungle)))
2337 `(("unzip" ,unzip)))
2338 (home-page "http://couger.oit.duke.edu")
2339 (synopsis "Identify co-factors in sets of genomic regions")
2341 "COUGER can be applied to any two sets of genomic regions bound by
2342 paralogous TFs (e.g., regions derived from ChIP-seq experiments) to identify
2343 putative co-factors that provide specificity to each TF. The framework
2344 determines the genomic targets uniquely-bound by each TF, and identifies a
2345 small set of co-factors that best explain the in vivo binding differences
2346 between the two TFs.
2348 COUGER uses classification algorithms (support vector machines and random
2349 forests) with features that reflect the DNA binding specificities of putative
2350 co-factors. The features are generated either from high-throughput TF-DNA
2351 binding data (from protein binding microarray experiments), or from large
2352 collections of DNA motifs.")
2353 (license license:gpl3+)))
2355 (define-public clustal-omega
2357 (name "clustal-omega")
2361 (uri (string-append "http://www.clustal.org/omega/clustal-omega-"
2365 "1vm30mzncwdv881vrcwg11vzvrsmwy4wg80j5i0lcfk6dlld50w6"))))
2366 (build-system gnu-build-system)
2368 `(("argtable" ,argtable)))
2369 (home-page "http://www.clustal.org/omega/")
2370 (synopsis "Multiple sequence aligner for protein and DNA/RNA")
2372 "Clustal-Omega is a general purpose multiple sequence alignment (MSA)
2373 program for protein and DNA/RNA. It produces high quality MSAs and is capable
2374 of handling data-sets of hundreds of thousands of sequences in reasonable
2376 (license license:gpl2+)))
2378 (define-public crossmap
2384 (uri (pypi-uri "CrossMap" version))
2387 "1sb2f2qbxya4fzw3yjl09vbrs8vfmw22zrygrvz004sf9gb1vkan"))))
2388 (build-system python-build-system)
2390 `(("python-bx-python" ,python-bx-python)
2391 ("python-numpy" ,python-numpy)
2392 ("python-pybigwig" ,python-pybigwig)
2393 ("python-pysam" ,python-pysam)
2396 `(("python-cython" ,python-cython)
2397 ("python-nose" ,python-nose)))
2398 (home-page "http://crossmap.sourceforge.net/")
2399 (synopsis "Convert genome coordinates between assemblies")
2401 "CrossMap is a program for conversion of genome coordinates or annotation
2402 files between different genome assemblies. It supports most commonly used
2403 file formats including SAM/BAM, Wiggle/BigWig, BED, GFF/GTF, VCF.")
2404 (license license:gpl2+)))
2406 (define-public python-dnaio
2408 (name "python-dnaio")
2413 (uri (pypi-uri "dnaio" version))
2416 "0f16m7hdlm0fz1n7y5asy0v9ghyrq17ni1p9iybq22ddzyd49r27"))))
2417 (build-system python-build-system)
2419 `(("python-cython" ,python-cython)
2420 ("python-pytest" ,python-pytest)
2421 ("python-xopen" ,python-xopen)))
2422 (home-page "https://github.com/marcelm/dnaio/")
2423 (synopsis "Read FASTA and FASTQ files efficiently")
2425 "dnaio is a Python library for fast parsing of FASTQ and also FASTA
2426 files. The code was previously part of the cutadapt tool.")
2427 (license license:expat)))
2429 (define-public python-deeptoolsintervals
2431 (name "python-deeptoolsintervals")
2435 (uri (pypi-uri "deeptoolsintervals" version))
2438 "1xnl80nblysj6dylj4683wgrfa425rkx4dp5k65hvwdns9pw753x"))))
2439 (build-system python-build-system)
2442 (home-page "https://github.com/deeptools/deeptools_intervals")
2443 (synopsis "Create GTF-based interval trees with associated meta-data")
2445 "This package provides a Python module creating/accessing GTF-based
2446 interval trees with associated meta-data. It is primarily used by the
2447 @code{deeptools} package.")
2448 (license license:expat)))
2450 (define-public python-deeptools
2452 (name "python-deeptools")
2457 (url "https://github.com/deeptools/deepTools")
2459 (file-name (git-file-name name version))
2462 "0l09vyynz6s6w7fnyd94rpys4a6aja6kp4gli64pngdxdz3md1nl"))))
2463 (build-system python-build-system)
2465 `(("python-mock" ,python-mock)
2466 ("python-nose" ,python-nose)))
2468 `(("python-matplotlib" ,python-matplotlib)
2469 ("python-numpy" ,python-numpy)
2470 ("python-numpydoc" ,python-numpydoc)
2471 ("python-py2bit" ,python-py2bit)
2472 ("python-pybigwig" ,python-pybigwig)
2473 ("python-pysam" ,python-pysam)
2474 ("python-scipy" ,python-scipy)
2475 ("python-deeptoolsintervals" ,python-deeptoolsintervals)
2476 ("python-plotly" ,python-plotly-2.4.1)))
2477 (home-page "https://pypi.org/project/deepTools/")
2478 (synopsis "Useful tools for exploring deep sequencing data")
2479 (description "This package addresses the challenge of handling large amounts
2480 of data that are now routinely generated from DNA sequencing centers.
2481 @code{deepTools} contains useful modules to process the mapped reads data for
2482 multiple quality checks, creating normalized coverage files in standard bedGraph
2483 and bigWig file formats, that allow comparison between different files. Finally,
2484 using such normalized and standardized files, deepTools can create many
2485 publication-ready visualizations to identify enrichments and for functional
2486 annotations of the genome.")
2487 ;; The file deeptools/cm.py is licensed under the BSD license. The
2488 ;; remainder of the code is licensed under the MIT license.
2489 (license (list license:bsd-3 license:expat))))
2491 (define-deprecated deeptools python-deeptools)
2493 (define-public cutadapt
2499 (uri (pypi-uri "cutadapt" version))
2502 "1vqmsfkm6llxzmsz9wcfcvzx9a9f8iabvwik2rbyn7nc4wm25z89"))))
2503 (build-system python-build-system)
2505 `(("python-dnaio" ,python-dnaio)
2506 ("python-xopen" ,python-xopen)))
2508 `(("python-cython" ,python-cython)
2509 ("python-pytest" ,python-pytest)
2510 ("python-setuptools-scm" ,python-setuptools-scm)))
2511 (home-page "https://cutadapt.readthedocs.io/en/stable/")
2512 (synopsis "Remove adapter sequences from nucleotide sequencing reads")
2514 "Cutadapt finds and removes adapter sequences, primers, poly-A tails and
2515 other types of unwanted sequence from high-throughput sequencing reads.")
2516 (license license:expat)))
2518 (define-public libbigwig
2525 (url "https://github.com/dpryan79/libBigWig")
2527 (file-name (git-file-name name version))
2530 "09693dmf1scdac5pyq6qyn8b4mcipvnmc370k9a5z41z81m3dcsj"))))
2531 (build-system gnu-build-system)
2533 `(#:test-target "test"
2534 #:tests? #f ; tests require access to the web
2537 (string-append "prefix=" (assoc-ref %outputs "out")))
2539 (modify-phases %standard-phases
2540 (delete 'configure))))
2545 `(("doxygen" ,doxygen)
2547 ("python" ,python-2)))
2548 (home-page "https://github.com/dpryan79/libBigWig")
2549 (synopsis "C library for handling bigWig files")
2551 "This package provides a C library for parsing local and remote BigWig
2553 (license license:expat)))
2555 (define-public python-pybigwig
2557 (name "python-pybigwig")
2561 (uri (pypi-uri "pyBigWig" version))
2564 "157x6v48y299zm382krf1dw08fdxg95im8lnabhp5vc94s04zxj1"))
2565 (modules '((guix build utils)))
2568 ;; Delete bundled libBigWig sources
2569 (delete-file-recursively "libBigWig")
2571 (build-system python-build-system)
2574 (modify-phases %standard-phases
2575 (add-after 'unpack 'link-with-libBigWig
2576 (lambda* (#:key inputs #:allow-other-keys)
2577 (substitute* "setup.py"
2578 (("libs=\\[") "libs=[\"BigWig\", "))
2581 `(("python-numpy" ,python-numpy)))
2583 `(("libbigwig" ,libbigwig)
2586 (home-page "https://github.com/dpryan79/pyBigWig")
2587 (synopsis "Access bigWig files in Python using libBigWig")
2589 "This package provides Python bindings to the libBigWig library for
2590 accessing bigWig files.")
2591 (license license:expat)))
2593 (define-public python2-pybigwig
2594 (package-with-python2 python-pybigwig))
2596 (define-public python-schema-salad
2598 (name "python-schema-salad")
2599 (version "7.1.20210316164414")
2603 (uri (pypi-uri "schema-salad" version))
2606 "04jaykdpgfnkrghvli5swxzqp7yba842am4bz42hcfljsmkrxvrk"))))
2607 (build-system python-build-system)
2610 (modify-phases %standard-phases
2611 (add-before 'check 'skip-failing-tests
2613 ;; Skip tests that require network access.
2614 (substitute* "schema_salad/tests/test_cwl11.py"
2615 (("^def test_(secondaryFiles|outputBinding)" all)
2616 (string-append "@pytest.mark.skip(reason="
2617 "\"test requires network access\")\n"
2621 `(("python-cachecontrol" ,python-cachecontrol-0.11)
2622 ("python-lockfile" ,python-lockfile)
2623 ("python-mistune" ,python-mistune)
2624 ("python-rdflib" ,python-rdflib)
2625 ("python-rdflib-jsonld" ,python-rdflib-jsonld)
2626 ("python-requests" ,python-requests)
2627 ("python-ruamel.yaml" ,python-ruamel.yaml)
2628 ("python-typing-extensions" ,python-typing-extensions)))
2630 `(("python-pytest" ,python-pytest)
2631 ("python-pytest-runner" ,python-pytest-runner)))
2632 (home-page "https://github.com/common-workflow-language/schema_salad")
2633 (synopsis "Schema Annotations for Linked Avro Data (SALAD)")
2635 "Salad is a schema language for describing JSON or YAML structured linked
2636 data documents. Salad schema describes rules for preprocessing, structural
2637 validation, and hyperlink checking for documents described by a Salad schema.
2638 Salad supports rich data modeling with inheritance, template specialization,
2639 object identifiers, object references, documentation generation, code
2640 generation, and transformation to RDF. Salad provides a bridge between document
2641 and record oriented data modeling and the Semantic Web.")
2642 (license license:asl2.0)))
2644 (define-public cwltool
2647 (version "3.0.20210319143721")
2651 (url "https://github.com/common-workflow-language/cwltool")
2653 (file-name (git-file-name name version))
2656 "1sgs9ckyxb9f9169mc3wm9lnjg4080ai42xqsrwpw9l8apy4c9m5"))))
2657 (build-system python-build-system)
2660 (modify-phases %standard-phases
2661 (add-after 'unpack 'loosen-version-restrictions
2663 (substitute* "setup.py"
2664 (("== 1.5.1") ">=1.5.1") ; prov
2665 ((", < 3.5") "") ; shellescape
2666 ((" >= 6.0.2, < 6.2") "")) ; pytest
2668 (add-after 'unpack 'dont-use-git
2670 (substitute* "gittaggers.py"
2671 (("self.git_timestamp_tag\\(\\)")
2672 (string-append "time.strftime('.%Y%m%d%H%M%S', time.gmtime(int("
2673 (string-drop ,version 4) ")))")))
2675 (add-after 'unpack 'modify-tests
2677 ;; Tries to connect to the internet.
2678 (delete-file "tests/test_content_type.py")
2679 (delete-file "tests/test_udocker.py")
2680 (delete-file "tests/test_http_input.py")
2681 (substitute* "tests/test_load_tool.py"
2682 (("def test_load_graph_fragment_from_packed")
2683 (string-append "@pytest.mark.skip(reason=\"Disabled by Guix\")\n"
2684 "def test_load_graph_fragment_from_packed")))
2685 (substitute* "tests/test_examples.py"
2686 (("def test_env_filtering")
2687 (string-append "@pytest.mark.skip(reason=\"Disabled by Guix\")\n"
2688 "def test_env_filtering")))
2689 ;; Tries to use cwl-runners.
2690 (substitute* "tests/test_examples.py"
2691 (("def test_v1_0_arg_empty_prefix_separate_false")
2692 (string-append "@pytest.mark.skip(reason=\"Disabled by Guix\")\n"
2693 "def test_v1_0_arg_empty_prefix_separate_false")))
2696 `(("python-argcomplete" ,python-argcomplete)
2697 ("python-bagit" ,python-bagit)
2698 ("python-coloredlogs" ,python-coloredlogs)
2699 ("python-mypy-extensions" ,python-mypy-extensions)
2700 ("python-prov" ,python-prov)
2701 ("python-pydot" ,python-pydot)
2702 ("python-psutil" ,python-psutil)
2703 ("python-rdflib" ,python-rdflib)
2704 ("python-requests" ,python-requests)
2705 ("python-ruamel.yaml" ,python-ruamel.yaml)
2706 ("python-schema-salad" ,python-schema-salad)
2707 ("python-shellescape" ,python-shellescape)
2708 ("python-typing-extensions" ,python-typing-extensions)
2709 ;; Not listed as needed but still necessary:
2712 `(("python-arcp" ,python-arcp)
2713 ("python-humanfriendly" ,python-humanfriendly)
2714 ("python-mock" ,python-mock)
2715 ("python-pytest" ,python-pytest)
2716 ("python-pytest-cov" ,python-pytest-cov)
2717 ("python-pytest-mock" ,python-pytest-mock)
2718 ("python-pytest-runner" ,python-pytest-runner)
2719 ("python-rdflib-jsonld" ,python-rdflib-jsonld)))
2721 "https://github.com/common-workflow-language/common-workflow-language")
2722 (synopsis "Common Workflow Language reference implementation")
2724 "This is the reference implementation of the @acronym{CWL, Common Workflow
2725 Language} standards. The CWL open standards are for describing analysis
2726 workflows and tools in a way that makes them portable and scalable across a
2727 variety of software and hardware environments, from workstations to cluster,
2728 cloud, and high performance computing (HPC) environments. CWL is designed to
2729 meet the needs of data-intensive science, such as Bioinformatics, Medical
2730 Imaging, Astronomy, Physics, and Chemistry. The @acronym{cwltool, CWL reference
2731 implementation} is intended to be feature complete and to provide comprehensive
2732 validation of CWL files as well as provide other tools related to working with
2734 (license license:asl2.0)))
2736 (define-public python-dendropy
2738 (name "python-dendropy")
2743 ;; Source from GitHub so that tests are included.
2745 (url "https://github.com/jeetsukumaran/DendroPy")
2746 (commit (string-append "v" version))))
2747 (file-name (git-file-name name version))
2750 "097hfyv2kaf4x92i4rjx0paw2cncxap48qivv8zxng4z7nhid0x9"))))
2751 (build-system python-build-system)
2752 (home-page "https://dendropy.org/")
2753 (synopsis "Library for phylogenetics and phylogenetic computing")
2755 "DendroPy is a library for phylogenetics and phylogenetic computing: reading,
2756 writing, simulation, processing and manipulation of phylogenetic
2757 trees (phylogenies) and characters.")
2758 (license license:bsd-3)))
2760 (define-public python2-dendropy
2761 (let ((base (package-with-python2 python-dendropy)))
2762 (package/inherit base
2765 (modify-phases %standard-phases
2766 (add-after 'unpack 'remove-failing-test
2768 ;; This test fails when the full test suite is run, as documented
2769 ;; at https://github.com/jeetsukumaran/DendroPy/issues/74
2770 (substitute* "tests/test_dataio_nexml_reader_tree_list.py"
2771 (("test_collection_comments_and_annotations")
2772 "do_not_test_collection_comments_and_annotations"))
2774 ,@(package-arguments base))))))
2776 (define-public python-py2bit
2778 (name "python-py2bit")
2783 (uri (pypi-uri "py2bit" version))
2786 "1vw2nvw1yrl7ikkqsqs1pg239yr5nspvd969r1x9arms1k25a1a5"))))
2787 (build-system python-build-system)
2788 (home-page "https://github.com/dpryan79/py2bit")
2789 (synopsis "Access 2bit files using lib2bit")
2791 "This package provides Python bindings for lib2bit to access 2bit files
2793 (license license:expat)))
2795 (define-public delly
2802 (url "https://github.com/dellytools/delly")
2803 (commit (string-append "v" version))))
2804 (file-name (git-file-name name version))
2806 (base32 "1ibnplgfzj96w8glkx17v7sld3pm402fr5ybmf3h0rlcryabxrqy"))
2807 (modules '((guix build utils)))
2810 (delete-file-recursively "src/htslib")
2812 (build-system gnu-build-system)
2814 `(#:tests? #f ; There are no tests to run.
2816 (list "PARALLEL=1" ; Allow parallel execution at run-time.
2817 (string-append "prefix=" (assoc-ref %outputs "out")))
2819 (modify-phases %standard-phases
2820 (delete 'configure) ; There is no configure phase.
2821 (add-after 'install 'install-templates
2822 (lambda* (#:key outputs #:allow-other-keys)
2823 (let ((templates (string-append (assoc-ref outputs "out")
2824 "/share/delly/templates")))
2826 (copy-recursively "excludeTemplates" templates)
2833 (home-page "https://github.com/dellytools/delly")
2834 (synopsis "Integrated structural variant prediction method")
2835 (description "Delly is an integrated structural variant prediction method
2836 that can discover and genotype deletions, tandem duplications, inversions and
2837 translocations at single-nucleotide resolution in short-read massively parallel
2838 sequencing data. It uses paired-ends and split-reads to sensitively and
2839 accurately delineate genomic rearrangements throughout the genome.")
2840 (license license:gpl3+)))
2849 (url "https://github.com/Benson-Genomics-Lab/TRF")
2850 (commit (string-append "v" version))))
2851 (file-name (git-file-name name version))
2853 (base32 "0fhwr4s1mf8nw8fr5imwjvjr42b59p97zr961ifm8xl1bajz4wpg"))))
2854 (build-system gnu-build-system)
2855 (home-page "https://github.com/Benson-Genomics-Lab/TRF")
2856 (synopsis "Tandem Repeats Finder: a program to analyze DNA sequences")
2857 (description "A tandem repeat in DNA is two or more adjacent, approximate
2858 copies of a pattern of nucleotides. Tandem Repeats Finder is a program to
2859 locate and display tandem repeats in DNA sequences. In order to use the
2860 program, the user submits a sequence in FASTA format. The output consists of
2861 two files: a repeat table file and an alignment file. Submitted sequences may
2862 be of arbitrary length. Repeats with pattern size in the range from 1 to 2000
2863 bases are detected.")
2864 (license license:agpl3+)))
2866 (define-public repeat-masker
2868 (name "repeat-masker")
2872 (uri (string-append "http://www.repeatmasker.org/"
2873 "RepeatMasker/RepeatMasker-"
2876 (base32 "03144sl9kh5ni2i33phi7x2pjndzbm5bjw3r4kqvmm6hxyb4k4x2"))))
2877 (build-system gnu-build-system)
2879 `(#:tests? #false ; there are none
2881 (modify-phases %standard-phases
2884 (lambda* (#:key inputs outputs #:allow-other-keys)
2885 (let ((share (string-append (assoc-ref outputs "out")
2886 "/share/RepeatMasker")))
2888 (copy-recursively "." share)
2889 (with-directory-excursion share
2890 (invoke "perl" "configure"
2891 "--trf_prgm" (which "trf")
2893 (string-append (assoc-ref inputs "hmmer")
2896 (lambda* (#:key outputs #:allow-other-keys)
2897 (let* ((out (assoc-ref outputs "out"))
2898 (share (string-append out "/share/RepeatMasker"))
2899 (bin (string-append out "/bin"))
2900 (path (getenv "PERL5LIB")))
2901 (install-file (string-append share "/RepeatMasker") bin)
2902 (wrap-program (string-append bin "/RepeatMasker")
2903 `("PERL5LIB" ":" prefix (,path ,share)))))))))
2906 ("perl-text-soundex" ,perl-text-soundex)
2908 ("python-h5py" ,python-h5py)
2911 (home-page "https://github.com/Benson-Genomics-Lab/TRF")
2912 (synopsis "Tandem Repeats Finder: a program to analyze DNA sequences")
2913 (description "A tandem repeat in DNA is two or more adjacent, approximate
2914 copies of a pattern of nucleotides. Tandem Repeats Finder is a program to
2915 locate and display tandem repeats in DNA sequences. In order to use the
2916 program, the user submits a sequence in FASTA format. The output consists of
2917 two files: a repeat table file and an alignment file. Submitted sequences may
2918 be of arbitrary length. Repeats with pattern size in the range from 1 to 2000
2919 bases are detected.")
2920 (license license:osl2.1)))
2922 (define-public diamond
2929 (url "https://github.com/bbuchfink/diamond")
2930 (commit (string-append "v" version))))
2931 (file-name (git-file-name name version))
2934 "0k6f3kb6cniw11xw6763kkbs1sl0yack7xsy7q5fl5v170ssphq4"))))
2935 (build-system cmake-build-system)
2937 '(#:tests? #f ; no "check" target
2939 (modify-phases %standard-phases
2940 (add-after 'unpack 'remove-native-compilation
2942 (substitute* "CMakeLists.txt" (("-march=native") ""))
2946 (home-page "https://github.com/bbuchfink/diamond")
2947 (synopsis "Accelerated BLAST compatible local sequence aligner")
2949 "DIAMOND is a BLAST-compatible local aligner for mapping protein and
2950 translated DNA query sequences against a protein reference database (BLASTP
2951 and BLASTX alignment mode). The speedup over BLAST is up to 20,000 on short
2952 reads at a typical sensitivity of 90-99% relative to BLAST depending on the
2953 data and settings.")
2954 (license license:agpl3+)))
2956 (define-public discrover
2964 (url "https://github.com/maaskola/discrover")
2966 (file-name (git-file-name name version))
2969 "173fwi2vb6a5kp406hm3jj6j7v4whww796f2qcygp4rpvamh307y"))))
2970 (build-system cmake-build-system)
2972 `(#:tests? #f ; there are no tests
2974 (modify-phases %standard-phases
2975 (add-after 'unpack 'fix-latex-errors
2977 (with-fluids ((%default-port-encoding #f))
2978 (substitute* "doc/references.bib"
2979 (("\\{S\\}illanp[^,]+,")
2980 "{S}illanp{\\\"a}{\\\"a},")))
2981 ;; XXX: I just can't get pdflatex to not complain about these
2982 ;; characters. They end up in the manual via the generated
2983 ;; discrover-cli-help.txt.
2984 (substitute* "src/hmm/cli.cpp"
2988 ;; This seems to be a syntax error.
2989 (substitute* "doc/discrover-manual.tex"
2990 (("theverbbox\\[t\\]") "theverbbox"))
2992 (add-after 'unpack 'add-missing-includes
2994 (substitute* "src/executioninformation.hpp"
2995 (("#define EXECUTIONINFORMATION_HPP" line)
2996 (string-append line "\n#include <random>")))
2997 (substitute* "src/plasma/fasta.hpp"
2998 (("#define FASTA_HPP" line)
2999 (string-append line "\n#include <random>")))
3001 ;; FIXME: this is needed because we're using texlive-union, which
3002 ;; doesn't handle fonts correctly. It expects to be able to generate
3003 ;; fonts in the home directory.
3004 (add-before 'build 'setenv-HOME
3005 (lambda _ (setenv "HOME" "/tmp") #t)))))
3009 ("rmath-standalone" ,rmath-standalone)))
3011 `(("texlive" ,(texlive-union (list texlive-fonts-cm
3012 texlive-fonts-amsfonts
3015 texlive-latex-examplep
3016 texlive-latex-hyperref
3018 texlive-latex-natbib
3019 texlive-bibtex ; style files used by natbib
3020 texlive-latex-pgf ; tikz
3021 texlive-latex-verbatimbox)))
3022 ("imagemagick" ,imagemagick)))
3023 (home-page "https://dorina.mdc-berlin.de/public/rajewsky/discrover/")
3024 (synopsis "Discover discriminative nucleotide sequence motifs")
3025 (description "Discrover is a motif discovery method to find binding sites
3026 of nucleic acid binding proteins.")
3027 (license license:gpl3+)))
3029 (define-public eigensoft
3037 (url "https://github.com/DReichLab/EIG")
3038 (commit (string-append "v" version))))
3039 (file-name (git-file-name name version))
3042 "1c141fqvhnzibmnf22sv23vbmzm20kjjyrib44cfh75wyndp2d9k"))
3043 (modules '((guix build utils)))
3044 ;; Remove pre-built binaries.
3046 (delete-file-recursively "bin")
3049 (build-system gnu-build-system)
3051 `(#:tests? #f ; There are no tests.
3052 #:make-flags '("CC=gcc")
3054 (modify-phases %standard-phases
3055 ;; There is no configure phase, but the Makefile is in a
3058 (lambda _ (chdir "src") #t))
3059 ;; The provided install target only copies executables to
3060 ;; the "bin" directory in the build root.
3061 (add-after 'install 'actually-install
3062 (lambda* (#:key outputs #:allow-other-keys)
3063 (let* ((out (assoc-ref outputs "out"))
3064 (bin (string-append out "/bin")))
3065 (for-each (lambda (file)
3066 (install-file file bin))
3067 (find-files "../bin" ".*"))
3072 ("openblas" ,openblas)
3074 ("gfortran" ,gfortran "lib")))
3075 (home-page "https://github.com/DReichLab/EIG")
3076 (synopsis "Tools for population genetics")
3077 (description "The EIGENSOFT package provides tools for population
3078 genetics and stratification correction. EIGENSOFT implements methods commonly
3079 used in population genetics analyses such as PCA, computation of Tracy-Widom
3080 statistics, and finding related individuals in structured populations. It
3081 comes with a built-in plotting script and supports multiple file formats and
3082 quantitative phenotypes.")
3083 ;; The license of the eigensoft tools is Expat, but since it's
3084 ;; linking with the GNU Scientific Library (GSL) the effective
3085 ;; license is the GPL.
3086 (license license:gpl3+)))
3088 (define-public edirect
3091 (version "13.3.20200128")
3094 (uri (string-append "ftp://ftp.ncbi.nlm.nih.gov/entrez/entrezdirect"
3095 "/versions/" version
3096 "/edirect-" version ".tar.gz"))
3099 "093zp7klv81ph0y8mm8d78a9hnpfxbv2kdym70gzdf3vz176rw33"))
3100 (modules '((guix build utils)))
3102 '(begin (delete-file "Mozilla-CA.tar.gz")
3103 (substitute* "rchive.go"
3104 ;; This go library does not have any license.
3105 (("github.com/fiam/gounidecode/unidecode")
3106 "golang.org/rainycape/unidecode"))
3108 (build-system perl-build-system)
3111 (modify-phases %standard-phases
3114 (delete 'check) ; simple check after install
3115 (add-after 'unpack 'patch-programs
3116 (lambda* (#:key inputs #:allow-other-keys)
3117 ;; Ignore errors about missing xtract.Linux and rchive.Linux.
3118 (substitute* "pm-refresh"
3119 (("cat \\\"\\$target")
3120 "grep ^[[:digit:]] \"$target"))
3123 (lambda* (#:key inputs outputs #:allow-other-keys)
3124 (let ((bin (string-append (assoc-ref outputs "out") "/bin"))
3125 (edirect-go (assoc-ref inputs "edirect-go-programs")))
3128 (install-file file bin))
3129 '("archive-pubmed" "asp-cp" "asp-ls" "download-ncbi-data"
3130 "download-pubmed" "edirect.pl" "efetch" "epost" "esearch"
3131 "fetch-pubmed" "ftp-cp" "ftp-ls" "has-asp" "index-pubmed"
3132 "pm-prepare" "pm-refresh" "pm-stash" "pm-collect"
3133 "pm-index" "pm-invert" "pm-merge" "pm-promote"))
3134 (symlink (string-append edirect-go "/bin/xtract.Linux")
3135 (string-append bin "/xtract"))
3136 (symlink (string-append edirect-go "/bin/rchive.Linux")
3137 (string-append bin "/rchive")))
3139 (add-after 'install 'wrap-program
3140 (lambda* (#:key outputs #:allow-other-keys)
3141 ;; Make sure everything can run in a pure environment.
3142 (let ((out (assoc-ref outputs "out"))
3143 (path (getenv "PERL5LIB")))
3147 `("PERL5LIB" ":" prefix (,path)))
3149 `("PATH" ":" prefix (,(string-append out "/bin")
3150 ,(dirname (which "sed"))
3151 ,(dirname (which "gzip"))
3152 ,(dirname (which "grep"))
3153 ,(dirname (which "perl"))
3154 ,(dirname (which "uname"))))))
3155 (find-files out ".")))
3157 (add-after 'wrap-program 'check
3158 (lambda* (#:key outputs #:allow-other-keys)
3159 (invoke (string-append (assoc-ref outputs "out")
3164 `(("edirect-go-programs" ,edirect-go-programs)
3165 ("perl-html-parser" ,perl-html-parser)
3166 ("perl-encode-locale" ,perl-encode-locale)
3167 ("perl-file-listing" ,perl-file-listing)
3168 ("perl-html-tagset" ,perl-html-tagset)
3169 ("perl-html-tree" ,perl-html-tree)
3170 ("perl-http-cookies" ,perl-http-cookies)
3171 ("perl-http-date" ,perl-http-date)
3172 ("perl-http-message" ,perl-http-message)
3173 ("perl-http-negotiate" ,perl-http-negotiate)
3174 ("perl-lwp-mediatypes" ,perl-lwp-mediatypes)
3175 ("perl-lwp-protocol-https" ,perl-lwp-protocol-https)
3176 ("perl-net-http" ,perl-net-http)
3177 ("perl-uri" ,perl-uri)
3178 ("perl-www-robotrules" ,perl-www-robotrules)
3179 ("perl-xml-simple" ,perl-xml-simple)
3181 (home-page "https://www.ncbi.nlm.nih.gov/books/NBK179288/")
3182 (synopsis "Tools for accessing the NCBI's set of databases")
3184 "Entrez Direct (EDirect) is a method for accessing the National Center
3185 for Biotechnology Information's (NCBI) set of interconnected
3186 databases (publication, sequence, structure, gene, variation, expression,
3187 etc.) from a terminal. Functions take search terms from command-line
3188 arguments. Individual operations are combined to build multi-step queries.
3189 Record retrieval and formatting normally complete the process.
3191 EDirect also provides an argument-driven function that simplifies the
3192 extraction of data from document summaries or other results that are returned
3193 in structured XML format. This can eliminate the need for writing custom
3194 software to answer ad hoc questions.")
3195 (native-search-paths
3196 ;; Ideally this should be set for LWP somewhere.
3197 (list (search-path-specification
3198 (variable "PERL_LWP_SSL_CA_FILE")
3199 (file-type 'regular)
3201 (files '("/etc/ssl/certs/ca-certificates.crt")))))
3202 (license license:public-domain)))
3204 (define-public edirect-go-programs
3207 (name "edirect-go-programs")
3208 (build-system go-build-system)
3210 `(#:install-source? #f
3211 #:tests? #f ; No tests.
3212 #:import-path "ncbi.nlm.nih.gov/entrez/edirect"
3214 (modify-phases %standard-phases
3216 (lambda* (#:key import-path #:allow-other-keys)
3217 (with-directory-excursion (string-append "src/" import-path)
3218 (invoke "go" "build" "-v" "-x" "j2x.go")
3219 (invoke "go" "build" "-v" "-x" "t2x.go")
3220 (invoke "go" "build" "-v" "-x" "-o"
3221 "xtract.Linux" "xtract.go" "common.go")
3222 (invoke "go" "build" "-v" "-x" "-o"
3223 "rchive.Linux" "rchive.go" "common.go")
3224 (invoke "go" "build" "-v" "-x" "-o" "symbols.Linux" "s2p.go"))))
3226 (lambda* (#:key outputs import-path #:allow-other-keys)
3227 (let ((dest (string-append (assoc-ref outputs "out") "/bin"))
3228 (source (string-append "src/" import-path "/")))
3229 (for-each (lambda (file)
3230 (format #t "installing ~a~%" file)
3231 (install-file (string-append source file) dest))
3232 '("j2x" "t2x" "symbols.Linux" "xtract.Linux" "rchive.Linux"))
3235 (propagated-inputs '())
3237 `(("go-github-com-fatih-color" ,go-github-com-fatih-color)
3238 ("go-github-com-fogleman-gg" ,go-github-com-fogleman-gg)
3239 ("go-github-com-gedex-inflector" ,go-github-com-gedex-inflector)
3240 ("go-github-com-golang-freetype" ,go-github-com-golang-freetype)
3241 ("go-github-com-klauspost-cpuid" ,go-github-com-klauspost-cpuid)
3242 ("go-github-com-pbnjay-memory" ,go-github-com-pbnjay-memory)
3243 ("go-github-com-surgebase-porter2" ,go-github-com-surgebase-porter2)
3244 ("go-golang-org-rainycape-unidecode" ,go-golang-org-rainycape-unidecode)
3245 ("go-golang-org-x-image" ,go-golang-org-x-image)
3246 ("go-golang-org-x-text" ,go-golang-org-x-text)))))
3248 (define-public exonerate
3257 "http://ftp.ebi.ac.uk/pub/software/vertebrategenomics/exonerate/"
3258 "exonerate-" version ".tar.gz"))
3261 "0hj0m9xygiqsdxvbg79wq579kbrx1mdrabi2bzqz2zn9qwfjcjgq"))))
3262 (build-system gnu-build-system)
3264 `(#:parallel-build? #f)) ; Building in parallel fails on some machines.
3266 `(("pkg-config" ,pkg-config)))
3270 "https://www.ebi.ac.uk/about/vertebrate-genomics/software/exonerate")
3271 (synopsis "Generic tool for biological sequence alignment")
3273 "Exonerate is a generic tool for pairwise sequence comparison. It allows
3274 the alignment of sequences using a many alignment models, either exhaustive
3275 dynamic programming or a variety of heuristics.")
3276 (license license:gpl3)))
3278 (define-public express
3285 (url "https://github.com/adarob/eXpress")
3287 (file-name (git-file-name name version))
3290 "18nb22n7x820fzjngf4qgyb3mspqkw7xyk7v7s5ps6wfrd8qwscb"))))
3291 (build-system cmake-build-system)
3293 `(#:tests? #f ;no "check" target
3295 (modify-phases %standard-phases
3296 (add-after 'unpack 'use-shared-boost-libs-and-set-bamtools-paths
3297 (lambda* (#:key inputs #:allow-other-keys)
3298 (substitute* "CMakeLists.txt"
3299 (("set\\(Boost_USE_STATIC_LIBS ON\\)")
3300 "set(Boost_USE_STATIC_LIBS OFF)")
3301 (("\\$\\{CMAKE_CURRENT_SOURCE_DIR\\}/bamtools/include")
3302 (string-append (assoc-ref inputs "bamtools") "/include/bamtools")))
3303 (substitute* "src/CMakeLists.txt"
3304 (("\\$\\{CMAKE_CURRENT_SOURCE_DIR\\}/\\.\\./bamtools/lib")
3305 (string-append (assoc-ref inputs "bamtools") "/lib"))
3306 (("libprotobuf.a") "libprotobuf.so"))
3308 (add-after 'unpack 'remove-update-check
3310 (substitute* "src/main.cpp"
3311 (("#include \"update_check.h\"") "")
3312 (("check_version\\(PACKAGE_VERSION\\);") ""))
3316 ("bamtools" ,bamtools)
3317 ("protobuf" ,protobuf)
3319 (home-page "http://bio.math.berkeley.edu/eXpress")
3320 (synopsis "Streaming quantification for high-throughput genomic sequencing")
3322 "eXpress is a streaming tool for quantifying the abundances of a set of
3323 target sequences from sampled subsequences. Example applications include
3324 transcript-level RNA-Seq quantification, allele-specific/haplotype expression
3325 analysis (from RNA-Seq), transcription factor binding quantification in
3326 ChIP-Seq, and analysis of metagenomic data.")
3327 (license license:artistic2.0)))
3329 (define-public express-beta-diversity
3331 (name "express-beta-diversity")
3336 (url "https://github.com/dparks1134/ExpressBetaDiversity")
3337 (commit (string-append "v" version))))
3338 (file-name (git-file-name name version))
3341 "0s0yzg5c21349rh7x4w9266jsvnp7j1hp9cf8sk32hz8nvrj745x"))))
3342 (build-system gnu-build-system)
3345 (modify-phases %standard-phases
3347 (add-before 'build 'enter-source (lambda _ (chdir "source") #t))
3349 (lambda _ (invoke "../bin/ExpressBetaDiversity" "-u") #t))
3351 (lambda* (#:key outputs #:allow-other-keys)
3352 (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
3353 (install-file "../scripts/convertToEBD.py" bin)
3354 (install-file "../bin/ExpressBetaDiversity" bin)
3357 `(("python" ,python-2)))
3358 (home-page "https://github.com/dparks1134/ExpressBetaDiversity")
3359 (synopsis "Taxon- and phylogenetic-based beta diversity measures")
3361 "Express Beta Diversity (EBD) calculates ecological beta diversity
3362 (dissimilarity) measures between biological communities. EBD implements a
3363 variety of diversity measures including those that make use of phylogenetic
3364 similarity of community members.")
3365 (license license:gpl3+)))
3367 (define-public fasttree
3374 "http://www.microbesonline.org/fasttree/FastTree-"
3378 "0vcjdvy1j4m702vmak4svbfkrpcw63k7wymfksjp9a982zy8kjsl"))))
3379 (build-system gnu-build-system)
3381 `(#:tests? #f ; no "check" target
3383 (modify-phases %standard-phases
3387 (lambda* (#:key source #:allow-other-keys)
3390 "-finline-functions"
3401 "-finline-functions"
3410 (lambda* (#:key outputs #:allow-other-keys)
3411 (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
3412 (install-file "FastTree" bin)
3413 (install-file "FastTreeMP" bin)
3415 (home-page "http://www.microbesonline.org/fasttree")
3416 (synopsis "Infers approximately-maximum-likelihood phylogenetic trees")
3418 "FastTree can handle alignments with up to a million of sequences in a
3419 reasonable amount of time and memory. For large alignments, FastTree is
3420 100-1,000 times faster than PhyML 3.0 or RAxML 7.")
3421 (license license:gpl2+)))
3423 (define-public fastx-toolkit
3425 (name "fastx-toolkit")
3431 "https://github.com/agordon/fastx_toolkit/releases/download/"
3432 version "/fastx_toolkit-" version ".tar.bz2"))
3435 "01jqzw386873sr0pjp1wr4rn8fsga2vxs1qfmicvx1pjr72007wy"))))
3436 (build-system gnu-build-system)
3438 `(("libgtextutils" ,libgtextutils)))
3440 `(("gcc" ,gcc-6) ;; doesn't build with later versions
3441 ("pkg-config" ,pkg-config)))
3442 (home-page "http://hannonlab.cshl.edu/fastx_toolkit/")
3443 (synopsis "Tools for FASTA/FASTQ file preprocessing")
3445 "The FASTX-Toolkit is a collection of command line tools for Short-Reads
3446 FASTA/FASTQ files preprocessing.
3448 Next-Generation sequencing machines usually produce FASTA or FASTQ files,
3449 containing multiple short-reads sequences. The main processing of such
3450 FASTA/FASTQ files is mapping the sequences to reference genomes. However, it
3451 is sometimes more productive to preprocess the files before mapping the
3452 sequences to the genome---manipulating the sequences to produce better mapping
3453 results. The FASTX-Toolkit tools perform some of these preprocessing tasks.")
3454 (license license:agpl3+)))
3456 (define-public flexbar
3463 (url "https://github.com/seqan/flexbar")
3464 (commit (string-append "v" version))))
3465 (file-name (git-file-name name version))
3468 "1pq9sxvdnldl14libk234m72dqhwgzs3acgl943wchwdqlcsi5r2"))))
3469 (build-system cmake-build-system)
3472 (modify-phases %standard-phases
3473 (add-after 'unpack 'do-not-tune-to-CPU
3475 (substitute* "src/CMakeLists.txt"
3476 ((" -march=native") ""))
3479 (lambda* (#:key outputs #:allow-other-keys)
3480 (setenv "PATH" (string-append (getcwd) ":" (getenv "PATH")))
3481 (with-directory-excursion "../source/test"
3482 (invoke "bash" "flexbar_test.sh"))
3485 (lambda* (#:key outputs #:allow-other-keys)
3486 (let* ((out (string-append (assoc-ref outputs "out")))
3487 (bin (string-append out "/bin/")))
3488 (install-file "flexbar" bin))
3494 `(("pkg-config" ,pkg-config)
3496 (home-page "https://github.com/seqan/flexbar")
3497 (synopsis "Barcode and adapter removal tool for sequencing platforms")
3499 "Flexbar preprocesses high-throughput nucleotide sequencing data
3500 efficiently. It demultiplexes barcoded runs and removes adapter sequences.
3501 Moreover, trimming and filtering features are provided. Flexbar increases
3502 read mapping rates and improves genome and transcriptome assemblies. It
3503 supports next-generation sequencing data in fasta/q and csfasta/q format from
3504 Illumina, Roche 454, and the SOLiD platform.")
3505 (license license:bsd-3)))
3507 (define-public fraggenescan
3509 (name "fraggenescan")
3515 (string-append "mirror://sourceforge/fraggenescan/"
3516 "FragGeneScan" version ".tar.gz"))
3518 (base32 "158dcnwczgcyhwm4qlx19sanrwgdpzf6bn2y57mbpx55lkgz1mzj"))))
3519 (build-system gnu-build-system)
3522 (modify-phases %standard-phases
3524 (add-before 'build 'patch-paths
3525 (lambda* (#:key outputs #:allow-other-keys)
3526 (let* ((out (string-append (assoc-ref outputs "out")))
3527 (share (string-append out "/share/fraggenescan/")))
3528 (substitute* "run_FragGeneScan.pl"
3530 (string-append "system(\"" (which "rm")))
3532 (string-append "system(\"" (which "mv")))
3533 (("\\\"awk") (string-append "\"" (which "awk")))
3534 ;; This script and other programs expect the training files
3535 ;; to be in the non-standard location bin/train/XXX. Change
3536 ;; this to be share/fraggenescan/train/XXX instead.
3537 (("^\\$train.file = \\$dir.*")
3538 (string-append "$train_file = \""
3540 "train/\".$FGS_train_file;")))
3541 (substitute* "run_hmm.c"
3542 (("^ strcat\\(train_dir, \\\"train/\\\"\\);")
3543 (string-append " strcpy(train_dir, \"" share "/train/\");"))))
3547 (invoke "make" "clean")
3548 (invoke "make" "fgs")
3551 (lambda* (#:key outputs #:allow-other-keys)
3552 (let* ((out (string-append (assoc-ref outputs "out")))
3553 (bin (string-append out "/bin/"))
3554 (share (string-append out "/share/fraggenescan/train")))
3555 (install-file "run_FragGeneScan.pl" bin)
3556 (install-file "FragGeneScan" bin)
3557 (copy-recursively "train" share))
3560 (add-after 'install 'post-install-check
3561 ;; In lieu of 'make check', run one of the examples and check the
3562 ;; output files gets created.
3563 (lambda* (#:key outputs #:allow-other-keys)
3564 (let* ((out (string-append (assoc-ref outputs "out")))
3565 (bin (string-append out "/bin/"))
3566 (frag (string-append bin "run_FragGeneScan.pl")))
3567 ;; Test complete genome.
3569 "-genome=./example/NC_000913.fna"
3573 (unless (and (file-exists? "test2.faa")
3574 (file-exists? "test2.ffn")
3575 (file-exists? "test2.gff")
3576 (file-exists? "test2.out"))
3577 (error "Expected files do not exist."))
3578 ;; Test incomplete sequences.
3580 "-genome=./example/NC_000913-fgs.ffn"
3587 ("python" ,python-2))) ;not compatible with python 3.
3588 (home-page "https://sourceforge.net/projects/fraggenescan/")
3589 (synopsis "Finds potentially fragmented genes in short reads")
3591 "FragGeneScan is a program for predicting bacterial and archaeal genes in
3592 short and error-prone DNA sequencing reads. It can also be applied to predict
3593 genes in incomplete assemblies or complete genomes.")
3594 ;; GPL3+ according to private correspondense with the authors.
3595 (license license:gpl3+)))
3597 (define-public fxtract
3598 (let ((util-commit "776ca85a18a47492af3794745efcb4a905113115"))
3606 (url "https://github.com/ctSkennerton/fxtract")
3608 (file-name (git-file-name name version))
3611 "0hab3gpwf4w9s87qlbswq6ws1qqybh4dcqk79q1ahyldzai5fgp5"))))
3612 (build-system gnu-build-system)
3614 `(#:make-flags (list
3615 (string-append "PREFIX=" (assoc-ref %outputs "out"))
3617 #:test-target "fxtract_test"
3619 (modify-phases %standard-phases
3621 (add-before 'build 'copy-util
3622 (lambda* (#:key inputs #:allow-other-keys)
3624 (copy-recursively (assoc-ref inputs "ctskennerton-util") "util")
3626 ;; Do not use make install as this requires additional dependencies.
3628 (lambda* (#:key outputs #:allow-other-keys)
3629 (let* ((out (assoc-ref outputs "out"))
3630 (bin (string-append out"/bin")))
3631 (install-file "fxtract" bin)
3637 ;; ctskennerton-util is licensed under GPL2.
3638 `(("ctskennerton-util"
3642 (url "https://github.com/ctSkennerton/util")
3643 (commit util-commit)))
3644 (file-name (string-append
3645 "ctstennerton-util-" util-commit "-checkout"))
3648 "0cls1hd4vgj3f36fpzzg4xc77d6f3hpc60cbpfmn2gdr7ykzzad7"))))))
3649 (home-page "https://github.com/ctSkennerton/fxtract")
3650 (synopsis "Extract sequences from FASTA and FASTQ files")
3652 "Fxtract extracts sequences from a protein or nucleotide fastx (FASTA
3653 or FASTQ) file given a subsequence. It uses a simple substring search for
3654 basic tasks but can change to using POSIX regular expressions, PCRE, hash
3655 lookups or multi-pattern searching as required. By default fxtract looks in
3656 the sequence of each record but can also be told to look in the header,
3657 comment or quality sections.")
3658 ;; 'util' requires SSE instructions.
3659 (supported-systems '("x86_64-linux"))
3660 (license license:expat))))
3662 (define-public gemma
3669 (url "https://github.com/genetics-statistics/GEMMA")
3671 (file-name (git-file-name name version))
3674 "1p8a7kkfn1mmrg017aziy544aha8i9h6wd1x2dk3w2794wl33qb7"))
3675 (modules '((guix build utils)))
3678 (delete-file-recursively "contrib")
3680 (build-system gnu-build-system)
3683 ("openblas" ,openblas)
3686 `(("catch" ,catch-framework2-1)
3688 ("shunit2" ,shunit2)
3692 (modify-phases %standard-phases
3694 (add-after 'unpack 'prepare-build
3695 (lambda* (#:key inputs #:allow-other-keys)
3697 (substitute* "Makefile"
3698 (("/usr/local/opt/openblas")
3699 (assoc-ref inputs "openblas")))
3702 (lambda* (#:key tests? #:allow-other-keys)
3704 ;; 'make slow-check' expects shunit2-2.0.3.
3705 (with-directory-excursion "test"
3706 (invoke "./test_suite.sh"))
3709 (lambda* (#:key outputs #:allow-other-keys)
3710 (install-file "bin/gemma"
3711 (string-append (assoc-ref outputs "out") "/bin"))
3713 (home-page "https://github.com/genetics-statistics/GEMMA")
3714 (synopsis "Tool for genome-wide efficient mixed model association")
3716 "@acronym{GEMMA, Genome-wide Efficient Mixed Model Association} provides a
3717 standard linear mixed model resolver with application in @acronym{GWAS,
3718 genome-wide association studies}.")
3719 (license license:gpl3)))
3728 (url "https://github.com/nboley/grit")
3730 (file-name (git-file-name name version))
3733 "1l5v8vfvfbrpmgnrvbrbv40d0arhxcnmxgv2f1mlcqfa3q6bkqm9"))))
3734 (build-system python-build-system)
3736 `(#:python ,python-2
3738 (modify-phases %standard-phases
3739 (add-after 'unpack 'generate-from-cython-sources
3740 (lambda* (#:key inputs outputs #:allow-other-keys)
3741 ;; Delete these C files to force fresh generation from pyx sources.
3742 (delete-file "grit/sparsify_support_fns.c")
3743 (delete-file "grit/call_peaks_support_fns.c")
3744 (substitute* "setup.py"
3745 (("Cython.Setup") "Cython.Build"))
3748 `(("python-scipy" ,python2-scipy)
3749 ("python-numpy" ,python2-numpy)
3750 ("python-pysam" ,python2-pysam)
3751 ("python-networkx" ,python2-networkx)))
3753 `(("python-cython" ,python2-cython)))
3754 ;; The canonical <http://grit-bio.org> home page times out as of 2020-01-21.
3755 (home-page "https://github.com/nboley/grit")
3756 (synopsis "Tool for integrative analysis of RNA-seq type assays")
3758 "GRIT is designed to use RNA-seq, TES, and TSS data to build and quantify
3759 full length transcript models. When none of these data sources are available,
3760 GRIT can be run by providing a candidate set of TES or TSS sites. In
3761 addition, GRIT can merge in reference junctions and gene boundaries. GRIT can
3762 also be run in quantification mode, where it uses a provided GTF file and just
3763 estimates transcript expression.")
3764 (license license:gpl3+)))
3766 (define-public hisat
3773 "http://ccb.jhu.edu/software/hisat/downloads/hisat-"
3774 version "-beta-source.zip"))
3777 "1k381ydranqxp09yf2y7w1d0chz5d59vb6jchi89hbb0prq19lk5"))))
3778 (build-system gnu-build-system)
3780 `(#:tests? #f ;no check target
3781 #:make-flags '("allall"
3782 ;; Disable unsupported `popcnt' instructions on
3783 ;; architectures other than x86_64
3784 ,@(if (string-prefix? "x86_64"
3785 (or (%current-target-system)
3788 '("POPCNT_CAPABILITY=0")))
3790 (modify-phases %standard-phases
3791 (add-after 'unpack 'patch-sources
3793 ;; XXX Cannot use snippet because zip files are not supported
3794 (substitute* "Makefile"
3795 (("^CC = .*$") "CC = gcc")
3796 (("^CPP = .*$") "CPP = g++")
3797 ;; replace BUILD_HOST and BUILD_TIME for deterministic build
3798 (("-DBUILD_HOST=.*") "-DBUILD_HOST=\"\\\"guix\\\"\"")
3799 (("-DBUILD_TIME=.*") "-DBUILD_TIME=\"\\\"0\\\"\""))
3800 (substitute* '("hisat-build" "hisat-inspect")
3801 (("/usr/bin/env") (which "env")))
3804 (lambda* (#:key outputs #:allow-other-keys)
3805 (let ((bin (string-append (assoc-ref outputs "out") "/bin/")))
3806 (for-each (lambda (file)
3807 (install-file file bin))
3810 "hisat(-(build|align|inspect)(-(s|l)(-debug)*)*)*$")))
3812 (delete 'configure))))
3814 `(("unzip" ,unzip)))
3819 ;; Non-portable SSE instructions are used so building fails on platforms
3820 ;; other than x86_64.
3821 (supported-systems '("x86_64-linux"))
3822 (home-page "https://ccb.jhu.edu/software/hisat/index.shtml")
3823 (synopsis "Hierarchical indexing for spliced alignment of transcripts")
3825 "HISAT is a fast and sensitive spliced alignment program for mapping
3826 RNA-seq reads. In addition to one global FM index that represents a whole
3827 genome, HISAT uses a large set of small FM indexes that collectively cover the
3828 whole genome. These small indexes (called local indexes) combined with
3829 several alignment strategies enable effective alignment of RNA-seq reads, in
3830 particular, reads spanning multiple exons.")
3831 (license license:gpl3+)))
3833 (define-public hisat2
3841 (url "https://github.com/DaehwanKimLab/hisat2/")
3842 (commit (string-append "v" version))))
3843 (file-name (git-file-name name version))
3846 "0lmzdhzjkvxw7n5w40pbv5fgzd4cz0f9pxczswn3d4cr0k10k754"))))
3847 (build-system gnu-build-system)
3849 `(#:tests? #f ; no check target
3850 #:make-flags (list "CC=gcc" "CXX=g++" "allall")
3851 #:modules ((guix build gnu-build-system)
3855 (modify-phases %standard-phases
3856 (add-after 'unpack 'make-deterministic
3858 (substitute* "Makefile"
3861 (add-before 'build 'build-manual
3864 (invoke "make" "doc")))
3866 (lambda* (#:key outputs #:allow-other-keys)
3867 (let* ((out (assoc-ref outputs "out"))
3868 (bin (string-append out "/bin/"))
3869 (doc (string-append out "/share/doc/hisat2/")))
3871 (cut install-file <> bin)
3873 "hisat2(-(build|align|inspect)(-(s|l)(-debug)*)*)*$"))
3875 (install-file "doc/manual.inc.html" doc)))))))
3878 ("pandoc" ,pandoc))) ; for documentation
3880 `(("python" ,python-wrapper)))
3881 (home-page "https://daehwankimlab.github.io/hisat2/")
3882 (synopsis "Graph-based alignment of genomic sequencing reads")
3883 (description "HISAT2 is a fast and sensitive alignment program for mapping
3884 next-generation sequencing reads (both DNA and RNA) to a population of human
3885 genomes (as well as to a single reference genome). In addition to using one
3886 global @dfn{graph FM} (GFM) index that represents a population of human
3887 genomes, HISAT2 uses a large set of small GFM indexes that collectively cover
3888 the whole genome. These small indexes, combined with several alignment
3889 strategies, enable rapid and accurate alignment of sequencing reads. This new
3890 indexing scheme is called a @dfn{Hierarchical Graph FM index} (HGFM).")
3891 ;; HISAT2 contains files from Bowtie2, which is released under
3892 ;; GPLv2 or later. The HISAT2 source files are released under
3894 (license license:gpl3+)))
3896 (define-public hmmer
3904 "http://eddylab.org/software/hmmer/hmmer-" version ".tar.gz"))
3907 "0s9wf6n0qanbx8qs6igfl3vyjikwbrvh4d9d6mv54yp3xysykzlj"))))
3908 (build-system gnu-build-system)
3909 (native-inputs `(("perl" ,perl)
3910 ("python" ,python))) ; for tests
3911 (home-page "http://hmmer.org/")
3912 (synopsis "Biosequence analysis using profile hidden Markov models")
3914 "HMMER is used for searching sequence databases for homologs of protein
3915 sequences, and for making protein sequence alignments. It implements methods
3916 using probabilistic models called profile hidden Markov models (profile
3918 ;; hmmer uses non-portable SSE intrinsics so building fails on other
3920 (supported-systems '("x86_64-linux" "i686-linux"))
3921 (license license:bsd-3)))
3923 (define-public htseq
3929 (uri (pypi-uri "HTSeq" version))
3932 "11flgb1381xdhk43bzbfm3vhnszkpqg6jk76rpa5xd1zbrvvlnxg"))))
3933 (build-system python-build-system)
3935 `(("python-cython" ,python-cython)))
3936 ;; Numpy needs to be propagated when htseq is used as a Python library.
3938 `(("python-numpy" ,python-numpy)))
3940 `(("python-pysam" ,python-pysam)
3941 ("python-matplotlib" ,python-matplotlib)))
3942 (home-page "https://htseq.readthedocs.io/")
3943 (synopsis "Analysing high-throughput sequencing data with Python")
3945 "HTSeq is a Python package that provides infrastructure to process data
3946 from high-throughput sequencing assays.")
3947 (license license:gpl3+)))
3949 (define-public python2-htseq
3950 (package-with-python2 htseq))
3952 (define-public java-htsjdk
3954 (name "java-htsjdk")
3955 (version "2.3.0") ; last version without build dependency on gradle
3959 (url "https://github.com/samtools/htsjdk")
3961 (file-name (git-file-name name version))
3964 "1b178ixcabanm834ydjl3jiakpyxdmki32hqfv2abrzn3rcwa28i"))
3965 (modules '((guix build utils)))
3967 ;; Delete pre-built binaries
3969 (delete-file-recursively "lib")
3972 (build-system ant-build-system)
3974 `(#:tests? #f ; test require Internet access
3977 (list (string-append "-Ddist=" (assoc-ref %outputs "out")
3978 "/share/java/htsjdk/"))
3979 #:build-target "all"
3981 (modify-phases %standard-phases
3982 ;; The build phase also installs the jars
3983 (delete 'install))))
3985 `(("java-ngs" ,java-ngs)
3986 ("java-snappy-1" ,java-snappy-1)
3987 ("java-commons-compress" ,java-commons-compress)
3988 ("java-commons-logging-minimal" ,java-commons-logging-minimal)
3989 ("java-commons-jexl-2" ,java-commons-jexl-2)
3990 ("java-xz" ,java-xz)))
3992 `(("java-testng" ,java-testng)))
3993 (home-page "http://samtools.github.io/htsjdk/")
3994 (synopsis "Java API for high-throughput sequencing data (HTS) formats")
3996 "HTSJDK is an implementation of a unified Java library for accessing
3997 common file formats, such as SAM and VCF, used for high-throughput
3998 sequencing (HTS) data. There are also an number of useful utilities for
3999 manipulating HTS data.")
4000 (license license:expat)))
4002 (define-public java-htsjdk-latest
4004 (name "java-htsjdk")
4009 (url "https://github.com/samtools/htsjdk")
4011 (file-name (string-append name "-" version "-checkout"))
4014 "1lmya1fdjy03mz6zmdmd86j9v9vfhqb3952mqq075navx1i6g4bc"))))
4015 (build-system ant-build-system)
4017 `(#:tests? #f ; test require Scala
4019 #:jar-name "htsjdk.jar"
4021 (modify-phases %standard-phases
4022 (add-after 'unpack 'remove-useless-build.xml
4023 (lambda _ (delete-file "build.xml") #t))
4024 ;; The tests require the scalatest package.
4025 (add-after 'unpack 'remove-tests
4026 (lambda _ (delete-file-recursively "src/test") #t)))))
4028 `(("java-ngs" ,java-ngs)
4029 ("java-snappy-1" ,java-snappy-1)
4030 ("java-commons-compress" ,java-commons-compress)
4031 ("java-commons-logging-minimal" ,java-commons-logging-minimal)
4032 ("java-commons-jexl-2" ,java-commons-jexl-2)
4033 ("java-xz" ,java-xz)))
4035 `(("java-junit" ,java-junit)))
4036 (home-page "http://samtools.github.io/htsjdk/")
4037 (synopsis "Java API for high-throughput sequencing data (HTS) formats")
4039 "HTSJDK is an implementation of a unified Java library for accessing
4040 common file formats, such as SAM and VCF, used for high-throughput
4041 sequencing (HTS) data. There are also an number of useful utilities for
4042 manipulating HTS data.")
4043 (license license:expat)))
4045 ;; This is needed for picard 2.10.3
4046 (define-public java-htsjdk-2.10.1
4047 (package (inherit java-htsjdk-latest)
4048 (name "java-htsjdk")
4053 (url "https://github.com/samtools/htsjdk")
4055 (file-name (string-append name "-" version "-checkout"))
4058 "1kxh7slm2pm3x9p6jxa1wqsq9a31dhiiflhxnxqcisan4k3rwia2"))))
4059 (build-system ant-build-system)
4061 `(#:tests? #f ; tests require Scala
4063 #:jar-name "htsjdk.jar"
4065 (modify-phases %standard-phases
4066 (add-after 'unpack 'remove-useless-build.xml
4067 (lambda _ (delete-file "build.xml") #t))
4068 ;; The tests require the scalatest package.
4069 (add-after 'unpack 'remove-tests
4070 (lambda _ (delete-file-recursively "src/test") #t)))))))
4072 ;; This version matches java-htsjdk 2.3.0. Later versions also require a more
4073 ;; recent version of java-htsjdk, which depends on gradle.
4074 (define-public java-picard
4076 (name "java-picard")
4081 (url "https://github.com/broadinstitute/picard")
4083 (file-name (string-append "java-picard-" version "-checkout"))
4086 "1ll7mf4r3by92w2nhlmpa591xd1f46xlkwh59mq6fvbb5pdwzvx6"))
4087 (modules '((guix build utils)))
4090 ;; Delete pre-built binaries.
4091 (delete-file-recursively "lib")
4093 (substitute* "build.xml"
4094 ;; Remove build-time dependency on git.
4095 (("failifexecutionfails=\"true\"")
4096 "failifexecutionfails=\"false\"")
4098 (("depends=\"compile-htsjdk, ")
4100 (("depends=\"compile-htsjdk-tests, ")
4102 ;; Build picard-lib.jar before building picard.jar
4103 (("name=\"picard-jar\" depends=\"" line)
4104 (string-append line "picard-lib-jar, ")))
4106 (build-system ant-build-system)
4108 `(#:build-target "picard-jar"
4109 #:test-target "test"
4110 ;; Tests require jacoco:coverage.
4113 (list (string-append "-Dhtsjdk_lib_dir="
4114 (assoc-ref %build-inputs "java-htsjdk")
4115 "/share/java/htsjdk/")
4116 "-Dhtsjdk-classes=dist/tmp"
4117 (string-append "-Dhtsjdk-version="
4118 ,(package-version java-htsjdk)))
4121 (modify-phases %standard-phases
4122 ;; FIXME: this phase fails with "duplicate entry: htsjdk/samtools/AbstractBAMFileIndex$1.class"
4123 (delete 'generate-jar-indices)
4124 (add-after 'unpack 'use-our-htsjdk
4125 (lambda* (#:key inputs #:allow-other-keys)
4126 (substitute* "build.xml"
4127 (("\\$\\{htsjdk\\}/lib")
4128 (string-append (assoc-ref inputs "java-htsjdk")
4129 "/share/java/htsjdk/")))
4131 (add-after 'unpack 'make-test-target-independent
4132 (lambda* (#:key inputs #:allow-other-keys)
4133 (substitute* "build.xml"
4134 (("name=\"test\" depends=\"compile, ")
4135 "name=\"test\" depends=\""))
4137 (replace 'install (install-jars "dist")))))
4139 `(("java-htsjdk" ,java-htsjdk)
4140 ("java-guava" ,java-guava)))
4142 `(("java-testng" ,java-testng)))
4143 (home-page "http://broadinstitute.github.io/picard/")
4144 (synopsis "Tools for manipulating high-throughput sequencing data and formats")
4145 (description "Picard is a set of Java command line tools for manipulating
4146 high-throughput sequencing (HTS) data and formats. Picard is implemented
4147 using the HTSJDK Java library to support accessing file formats that are
4148 commonly used for high-throughput sequencing data such as SAM, BAM, CRAM and
4150 (license license:expat)))
4152 ;; This is needed for dropseq-tools
4153 (define-public java-picard-2.10.3
4155 (name "java-picard")
4160 (url "https://github.com/broadinstitute/picard")
4162 (file-name (string-append "java-picard-" version "-checkout"))
4165 "1ajlx31l6i1k3y2rhnmgq07sz99g2czqfqgkr9mihmdjp3gwjhvi"))))
4166 (build-system ant-build-system)
4168 `(#:jar-name "picard.jar"
4169 ;; Tests require jacoco:coverage.
4172 #:main-class "picard.cmdline.PicardCommandLine"
4173 #:modules ((guix build ant-build-system)
4175 (guix build java-utils)
4180 (modify-phases %standard-phases
4181 ;; FIXME: this phase fails with "duplicate entry: htsjdk/samtools/AbstractBAMFileIndex$1.class"
4182 (delete 'generate-jar-indices)
4183 (add-after 'unpack 'remove-useless-build.xml
4184 (lambda _ (delete-file "build.xml") #t))
4185 ;; This is necessary to ensure that htsjdk is found when using
4186 ;; picard.jar as an executable.
4187 (add-before 'build 'edit-classpath-in-manifest
4188 (lambda* (#:key inputs #:allow-other-keys)
4189 (chmod "build.xml" #o664)
4190 (call-with-output-file "build.xml.new"
4194 (with-input-from-file "build.xml"
4195 (lambda _ (xml->sxml #:trim-whitespace? #t)))
4196 `((target . ,(lambda (tag . kids)
4197 (let ((name ((sxpath '(name *text*))
4199 ;; FIXME: We're breaking the line
4200 ;; early with a dummy path to
4201 ;; ensure that the store reference
4202 ;; isn't broken apart and can still
4203 ;; be found by the reference
4208 ~a/share/java/htsjdk.jar${line.separator}${line.separator}"
4209 ;; maximum line length is 70
4210 (string-tabulate (const #\b) 57)
4211 (assoc-ref inputs "java-htsjdk"))))
4212 (if (member "manifest" name)
4215 (@ (file "${manifest.file}")
4216 (match "\\r\\n\\r\\n")
4217 (replace "${line.separator}")))
4220 (file "${manifest.file}")
4223 (*default* . ,(lambda (tag . kids) `(,tag ,@kids)))
4224 (*text* . ,(lambda (_ txt) txt))))
4226 (rename-file "build.xml.new" "build.xml")
4229 `(("java-htsjdk" ,java-htsjdk-2.10.1)))
4231 `(("java-testng" ,java-testng)
4232 ("java-guava" ,java-guava)))
4233 (home-page "http://broadinstitute.github.io/picard/")
4234 (synopsis "Tools for manipulating high-throughput sequencing data and formats")
4235 (description "Picard is a set of Java command line tools for manipulating
4236 high-throughput sequencing (HTS) data and formats. Picard is implemented
4237 using the HTSJDK Java library to support accessing file formats that are
4238 commonly used for high-throughput sequencing data such as SAM, BAM, CRAM and
4240 (license license:expat)))
4242 ;; This is the last version of Picard to provide net.sf.samtools
4243 (define-public java-picard-1.113
4244 (package (inherit java-picard)
4245 (name "java-picard")
4250 (url "https://github.com/broadinstitute/picard")
4252 (file-name (string-append "java-picard-" version "-checkout"))
4255 "0lkpvin2fz3hhly4l02kk56fqy8lmlgyzr9kmvljk6ry6l1hw973"))
4256 (modules '((guix build utils)))
4259 ;; Delete pre-built binaries.
4260 (delete-file-recursively "lib")
4263 (build-system ant-build-system)
4265 `(#:build-target "picard-jar"
4266 #:test-target "test"
4267 ;; FIXME: the class path at test time is wrong.
4268 ;; [testng] Error: A JNI error has occurred, please check your installation and try again
4269 ;; [testng] Exception in thread "main" java.lang.NoClassDefFoundError: com/beust/jcommander/ParameterException
4273 ;; This is only used for tests.
4275 (list "-Dsamjdk.intel_deflater_so_path=lib/jni/libIntelDeflater.so")
4277 (modify-phases %standard-phases
4278 ;; FIXME: This phase fails.
4279 (delete 'generate-jar-indices)
4280 ;; Do not use bundled ant bzip2.
4281 (add-after 'unpack 'use-ant-bzip
4282 (lambda* (#:key inputs #:allow-other-keys)
4283 (substitute* "build.xml"
4284 (("\\$\\{lib\\}/apache-ant-1.8.2-bzip2.jar")
4285 (string-append (assoc-ref inputs "ant")
4288 (add-after 'unpack 'make-test-target-independent
4289 (lambda* (#:key inputs #:allow-other-keys)
4290 (substitute* "build.xml"
4291 (("name=\"test\" depends=\"compile, ")
4292 "name=\"test\" depends=\"compile-tests, ")
4293 (("name=\"compile\" depends=\"compile-src, compile-tests\"")
4294 "name=\"compile\" depends=\"compile-src\""))
4296 (add-after 'unpack 'fix-deflater-path
4297 (lambda* (#:key outputs #:allow-other-keys)
4298 (substitute* "src/java/net/sf/samtools/Defaults.java"
4299 (("getStringProperty\\(\"intel_deflater_so_path\", null\\)")
4300 (string-append "getStringProperty(\"intel_deflater_so_path\", \""
4301 (assoc-ref outputs "out")
4302 "/lib/jni/libIntelDeflater.so"
4305 ;; Build the deflater library, because we've previously deleted the
4306 ;; pre-built one. This can only be built with access to the JDK
4308 (add-after 'build 'build-jni
4309 (lambda* (#:key inputs #:allow-other-keys)
4312 (invoke "tar" "--strip-components=1" "-C" "jdk-src"
4313 "-xf" (assoc-ref inputs "jdk-src"))
4314 (invoke "javah" "-jni"
4315 "-classpath" "classes"
4317 "net.sf.samtools.util.zip.IntelDeflater")
4318 (with-directory-excursion "src/c/inteldeflater"
4319 (invoke "gcc" "-I../../../lib" "-I."
4320 (string-append "-I" (assoc-ref inputs "jdk")
4322 "-I../../../jdk-src/src/share/native/common/"
4323 "-I../../../jdk-src/src/solaris/native/common/"
4324 "-c" "-O3" "-fPIC" "IntelDeflater.c")
4325 (invoke "gcc" "-shared"
4326 "-o" "../../../lib/jni/libIntelDeflater.so"
4327 "IntelDeflater.o" "-lz" "-lstdc++"))
4329 ;; We can only build everything else after building the JNI library.
4330 (add-after 'build-jni 'build-rest
4331 (lambda* (#:key make-flags #:allow-other-keys)
4332 (apply invoke `("ant" "all" ,@make-flags))
4334 (add-before 'build 'set-JAVA6_HOME
4336 (setenv "JAVA6_HOME" (getenv "JAVA_HOME"))
4338 (replace 'install (install-jars "dist"))
4339 (add-after 'install 'install-jni-lib
4340 (lambda* (#:key outputs #:allow-other-keys)
4341 (let ((jni (string-append (assoc-ref outputs "out")
4344 (install-file "lib/jni/libIntelDeflater.so" jni)
4347 `(("java-snappy-1" ,java-snappy-1)
4348 ("java-commons-jexl-2" ,java-commons-jexl-2)
4349 ("java-cofoja" ,java-cofoja)
4350 ("ant" ,ant/java8) ; for bzip2 support at runtime
4353 `(("ant-apache-bcel" ,ant-apache-bcel)
4354 ("ant-junit" ,ant-junit)
4355 ("java-testng" ,java-testng)
4356 ("java-commons-bcel" ,java-commons-bcel)
4357 ("java-jcommander" ,java-jcommander)
4358 ("jdk" ,icedtea-8 "jdk")
4359 ("jdk-src" ,(car (assoc-ref (package-native-inputs icedtea-8) "jdk-drop")))))))
4361 (define-public fastqc
4368 (uri (string-append "http://www.bioinformatics.babraham.ac.uk/"
4369 "projects/fastqc/fastqc_v"
4370 version "_source.zip"))
4373 "18rrlkhcrxvvvlapch4dpj6xc6mpayzys8qfppybi8jrpgx5cc5f"))))
4374 (build-system ant-build-system)
4376 `(#:tests? #f ; there are no tests
4377 #:build-target "build"
4379 (modify-phases %standard-phases
4380 (add-after 'unpack 'fix-dependencies
4381 (lambda* (#:key inputs #:allow-other-keys)
4382 (substitute* "build.xml"
4384 (string-append (assoc-ref inputs "java-jbzip2")
4385 "/share/java/jbzip2.jar"))
4387 (string-append (assoc-ref inputs "java-picard-1.113")
4388 "/share/java/sam-1.112.jar"))
4390 (string-append (assoc-ref inputs "java-cisd-jhdf5")
4391 "/share/java/sis-jhdf5.jar")))
4393 ;; There is no installation target
4395 (lambda* (#:key inputs outputs #:allow-other-keys)
4396 (let* ((out (assoc-ref outputs "out"))
4397 (bin (string-append out "/bin"))
4398 (share (string-append out "/share/fastqc/"))
4399 (exe (string-append share "/fastqc")))
4400 (for-each mkdir-p (list bin share))
4401 (copy-recursively "bin" share)
4403 (("my \\$java_bin = 'java';")
4404 (string-append "my $java_bin = '"
4405 (assoc-ref inputs "java")
4408 (symlink exe (string-append bin "/fastqc"))
4412 ("perl" ,perl) ; needed for the wrapper script
4413 ("java-cisd-jhdf5" ,java-cisd-jhdf5)
4414 ("java-picard-1.113" ,java-picard-1.113)
4415 ("java-jbzip2" ,java-jbzip2)))
4417 `(("unzip" ,unzip)))
4418 (home-page "https://www.bioinformatics.babraham.ac.uk/projects/fastqc/")
4419 (synopsis "Quality control tool for high throughput sequence data")
4421 "FastQC aims to provide a simple way to do some quality control
4422 checks on raw sequence data coming from high throughput sequencing
4423 pipelines. It provides a modular set of analyses which you can use to
4424 give a quick impression of whether your data has any problems of which
4425 you should be aware before doing any further analysis.
4427 The main functions of FastQC are:
4430 @item Import of data from BAM, SAM or FastQ files (any variant);
4431 @item Providing a quick overview to tell you in which areas there may
4433 @item Summary graphs and tables to quickly assess your data;
4434 @item Export of results to an HTML based permanent report;
4435 @item Offline operation to allow automated generation of reports
4436 without running the interactive application.
4438 (license license:gpl3+)))
4440 (define-public fastp
4448 (url "https://github.com/OpenGene/fastp")
4449 (commit (string-append "v" version))))
4450 (file-name (git-file-name name version))
4453 "1r6ms5zbf5rps4rgp4z73nczadl00b5rqylw8f684isfz27dp0xh"))))
4454 (build-system gnu-build-system)
4456 `(#:tests? #f ; there are none
4458 (list (string-append "BINDIR=" (assoc-ref %outputs "out") "/bin"))
4460 (modify-phases %standard-phases
4462 (add-before 'install 'create-target-dir
4463 (lambda* (#:key outputs #:allow-other-keys)
4464 (mkdir-p (string-append (assoc-ref outputs "out") "/bin"))
4468 (home-page "https://github.com/OpenGene/fastp/")
4469 (synopsis "All-in-one FastQ preprocessor")
4471 "Fastp is a tool designed to provide fast all-in-one preprocessing for
4472 FastQ files. This tool has multi-threading support to afford high
4474 (license license:expat)))
4476 (define-public htslib
4483 "https://github.com/samtools/htslib/releases/download/"
4484 version "/htslib-" version ".tar.bz2"))
4487 "1mrq4mihzx37yqhj3sfz6da6mw49niia808bzsw2gkkgmadxvyng"))))
4488 (build-system gnu-build-system)
4489 ;; Let htslib translate "gs://" and "s3://" to regular https links with
4490 ;; "--enable-gcs" and "--enable-s3". For these options to work, we also
4491 ;; need to set "--enable-libcurl".
4493 `(#:configure-flags '("--enable-gcs"
4498 ("openssl" ,openssl)))
4499 ;; This is referred to in the pkg-config file as a required library.
4504 (home-page "https://www.htslib.org")
4505 (synopsis "C library for reading/writing high-throughput sequencing data")
4507 "HTSlib is a C library for reading/writing high-throughput sequencing
4508 data. It also provides the @command{bgzip}, @command{htsfile}, and
4509 @command{tabix} utilities.")
4510 ;; Files under cram/ are released under the modified BSD license;
4511 ;; the rest is released under the Expat license
4512 (license (list license:expat license:bsd-3))))
4514 (define-public htslib-1.9
4515 (package (inherit htslib)
4521 "https://github.com/samtools/htslib/releases/download/"
4522 version "/htslib-" version ".tar.bz2"))
4525 "16ljv43sc3fxmv63w7b2ff8m1s7h89xhazwmbm1bicz8axq8fjz0"))))))
4527 ;; This package should be removed once no packages rely upon it.
4535 "https://github.com/samtools/htslib/releases/download/"
4536 version "/htslib-" version ".tar.bz2"))
4539 "1rja282fwdc25ql6izkhdyh8ppw8x2fs0w0js78zgkmqjlikmma9"))))))
4548 (url "https://github.com/nboley/idr")
4550 (file-name (git-file-name name version))
4553 "04j876h6z444v2q79drxx283d3k5snd72kj895wbalnl42206x9g"))
4554 ;; Delete generated C code.
4556 '(begin (delete-file "idr/inv_cdf.c") #t))))
4557 (build-system python-build-system)
4558 ;; There is only one test ("test_inv_cdf.py") and it tests features that
4559 ;; are no longer part of this package. It also asserts False, which
4560 ;; causes the tests to always fail.
4561 (arguments `(#:tests? #f))
4563 `(("python-scipy" ,python-scipy)
4564 ("python-sympy" ,python-sympy)
4565 ("python-numpy" ,python-numpy)
4566 ("python-matplotlib" ,python-matplotlib)))
4568 `(("python-cython" ,python-cython)))
4569 (home-page "https://github.com/nboley/idr")
4570 (synopsis "Tool to measure the irreproducible discovery rate (IDR)")
4572 "The IDR (Irreproducible Discovery Rate) framework is a unified approach
4573 to measure the reproducibility of findings identified from replicate
4574 experiments and provide highly stable thresholds based on reproducibility.")
4575 (license license:gpl2+)))
4577 (define-public jellyfish
4583 (uri (string-append "https://github.com/gmarcais/Jellyfish/"
4584 "releases/download/v" version
4585 "/jellyfish-" version ".tar.gz"))
4588 "1k4pc3fvv6w1km2yph4m5sd78fbxp21d6xyzgmy0gjihzc6mb249"))))
4589 (build-system gnu-build-system)
4590 (outputs '("out" ;for library
4591 "ruby" ;for Ruby bindings
4592 "python")) ;for Python bindings
4595 (list (string-append "--enable-ruby-binding="
4596 (assoc-ref %outputs "ruby"))
4597 (string-append "--enable-python-binding="
4598 (assoc-ref %outputs "python")))
4600 (modify-phases %standard-phases
4601 (add-before 'check 'set-SHELL-variable
4603 ;; generator_manager.hpp either uses /bin/sh or $SHELL
4605 (setenv "SHELL" (which "bash"))
4611 ("python" ,python-2)
4612 ("pkg-config" ,pkg-config)))
4614 `(("htslib" ,htslib)))
4615 (synopsis "Tool for fast counting of k-mers in DNA")
4617 "Jellyfish is a tool for fast, memory-efficient counting of k-mers in
4618 DNA. A k-mer is a substring of length k, and counting the occurrences of all
4619 such substrings is a central step in many analyses of DNA sequence. Jellyfish
4620 is a command-line program that reads FASTA and multi-FASTA files containing
4621 DNA sequences. It outputs its k-mer counts in a binary format, which can be
4622 translated into a human-readable text format using the @code{jellyfish dump}
4623 command, or queried for specific k-mers with @code{jellyfish query}.")
4624 (home-page "http://www.genome.umd.edu/jellyfish.html")
4625 ;; JELLYFISH seems to be 64-bit only.
4626 (supported-systems '("x86_64-linux" "aarch64-linux" "mips64el-linux"))
4627 ;; The combined work is published under the GPLv3 or later. Individual
4628 ;; files such as lib/jsoncpp.cpp are released under the Expat license.
4629 (license (list license:gpl3+ license:expat))))
4631 (define-public khmer
4639 (url "https://github.com/dib-lab/khmer")
4640 (commit (string-append "v" version))))
4641 (file-name (git-file-name name version))
4644 "01l4jczglkl7yfhgvzx8j0df7k54bk1r8sli9ll16i1mis0d8f37"))
4645 (modules '((guix build utils)))
4648 ;; Delete bundled libraries. We do not replace the bundled seqan
4649 ;; as it is a modified subset of the old version 1.4.1.
4651 ;; We do not replace the bundled MurmurHash as the canonical
4652 ;; repository for this code 'SMHasher' is unsuitable for providing
4654 ;; https://lists.gnu.org/archive/html/guix-devel/2016-06/msg00977.html
4655 (delete-file-recursively "third-party/zlib")
4656 (delete-file-recursively "third-party/bzip2")
4657 (delete-file-recursively "third-party/seqan")
4658 (substitute* "setup.cfg"
4659 (("# libraries = z,bz2")
4660 "libraries = z,bz2")
4661 (("include:third-party/zlib:third-party/bzip2")
4664 (build-system python-build-system)
4667 (modify-phases %standard-phases
4668 (add-after 'unpack 'set-cc
4669 (lambda _ (setenv "CC" "gcc") #t))
4671 (add-before 'reset-gzip-timestamps 'make-files-writable
4672 (lambda* (#:key outputs #:allow-other-keys)
4673 ;; Make sure .gz files are writable so that the
4674 ;; 'reset-gzip-timestamps' phase can do its work.
4675 (let ((out (assoc-ref outputs "out")))
4676 (for-each make-file-writable
4677 (find-files out "\\.gz$"))
4680 `(("python-cython" ,python-cython)
4681 ("python-pytest" ,python-pytest)
4682 ("python-pytest-runner" ,python-pytest-runner)))
4687 ("python-screed" ,python-screed)
4688 ("python-bz2file" ,python-bz2file)))
4689 (home-page "https://khmer.readthedocs.org/")
4690 (synopsis "K-mer counting, filtering and graph traversal library")
4691 (description "The khmer software is a set of command-line tools for
4692 working with DNA shotgun sequencing data from genomes, transcriptomes,
4693 metagenomes and single cells. Khmer can make de novo assemblies faster, and
4694 sometimes better. Khmer can also identify and fix problems with shotgun
4696 ;; When building on i686, armhf and mips64el, we get the following error:
4697 ;; error: ['khmer', 'khmer.tests', 'oxli'] require 64-bit operating system
4698 (supported-systems '("x86_64-linux" "aarch64-linux"))
4699 (license license:bsd-3)))
4701 (define-public kaiju
4708 (url "https://github.com/bioinformatics-centre/kaiju")
4709 (commit (string-append "v" version))))
4710 (file-name (git-file-name name version))
4713 "119pzi0ddzv9mjg4wwa6han0cwr3k3ssn7kirvsjfcq05mi5ka0x"))))
4714 (build-system gnu-build-system)
4716 `(#:tests? #f ; There are no tests.
4718 (modify-phases %standard-phases
4720 (add-before 'build 'move-to-src-dir
4721 (lambda _ (chdir "src") #t))
4723 (lambda* (#:key inputs outputs #:allow-other-keys)
4724 (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
4727 (copy-recursively "bin" bin))
4732 (home-page "http://kaiju.binf.ku.dk/")
4733 (synopsis "Fast and sensitive taxonomic classification for metagenomics")
4734 (description "Kaiju is a program for sensitive taxonomic classification
4735 of high-throughput sequencing reads from metagenomic whole genome sequencing
4737 (license license:gpl3+)))
4744 ;; The PyPi tarball does not contain tests.
4747 (url "https://github.com/macs3-project/MACS")
4748 (commit (string-append "v" version))))
4749 (file-name (git-file-name name version))
4752 "1c5gxr0mk6hkd4vclf0k00wvyvzw2vrmk52c85338p7aqjwg6n15"))
4753 (modules '((guix build utils)))
4754 ;; Remove files generated by Cython
4757 (for-each (lambda (file)
4758 (let ((generated-file
4759 (string-append (string-drop-right file 3) "c")))
4760 (when (file-exists? generated-file)
4761 (delete-file generated-file))))
4762 (find-files "." "\\.pyx$"))
4763 (delete-file "MACS2/IO/CallPeakUnitPrecompiled.c")
4765 (build-system python-build-system)
4768 (modify-phases %standard-phases
4770 (lambda* (#:key tests? inputs outputs #:allow-other-keys)
4772 (add-installed-pythonpath inputs outputs)
4773 (invoke "pytest" "-v"))
4776 `(("python-numpy" ,python-numpy)))
4778 `(("python-cython" ,python-cython)
4779 ("python-pytest" ,python-pytest)))
4780 (home-page "https://github.com/macs3-project/MACS")
4781 (synopsis "Model based analysis for ChIP-Seq data")
4783 "MACS is an implementation of a ChIP-Seq analysis algorithm for
4784 identifying transcript factor binding sites named Model-based Analysis of
4785 ChIP-Seq (MACS). MACS captures the influence of genome complexity to evaluate
4786 the significance of enriched ChIP regions and it improves the spatial
4787 resolution of binding sites through combining the information of both
4788 sequencing tag position and orientation.")
4789 (license license:bsd-3)))
4791 (define-public mafft
4798 "https://mafft.cbrc.jp/alignment/software/mafft-" version
4799 "-without-extensions-src.tgz"))
4800 (file-name (string-append name "-" version ".tgz"))
4803 "0i2i2m3blh2xkbkdk48hxfssks30ny0v381gdl7zwhcvp0axs26r"))))
4804 (build-system gnu-build-system)
4806 `(#:tests? #f ; no automated tests, though there are tests in the read me
4807 #:make-flags (let ((out (assoc-ref %outputs "out")))
4808 (list (string-append "PREFIX=" out)
4809 (string-append "BINDIR="
4810 (string-append out "/bin"))))
4812 (modify-phases %standard-phases
4813 (add-after 'unpack 'enter-dir
4814 (lambda _ (chdir "core") #t))
4815 (add-after 'enter-dir 'patch-makefile
4817 ;; on advice from the MAFFT authors, there is no need to
4818 ;; distribute mafft-profile, mafft-distance, or
4819 ;; mafft-homologs.rb as they are too "specialised".
4820 (substitute* "Makefile"
4821 ;; remove mafft-homologs.rb from SCRIPTS
4822 (("^SCRIPTS = mafft mafft-homologs.rb")
4824 ;; remove mafft-homologs from MANPAGES
4825 (("^MANPAGES = mafft.1 mafft-homologs.1")
4826 "MANPAGES = mafft.1")
4827 ;; remove mafft-distance from PROGS
4828 (("^PROGS = dvtditr dndfast7 dndblast sextet5 mafft-distance")
4829 "PROGS = dvtditr dndfast7 dndblast sextet5")
4830 ;; remove mafft-profile from PROGS
4831 (("splittbfast disttbfast tbfast mafft-profile 2cl mccaskillwrap")
4832 "splittbfast disttbfast tbfast f2cl mccaskillwrap")
4833 (("^rm -f mafft-profile mafft-profile.exe") "#")
4834 (("^rm -f mafft-distance mafft-distance.exe") ")#")
4835 ;; do not install MAN pages in libexec folder
4836 (("^\t\\$\\(INSTALL\\) -m 644 \\$\\(MANPAGES\\) \
4837 \\$\\(DESTDIR\\)\\$\\(LIBDIR\\)") "#"))
4839 (add-after 'enter-dir 'patch-paths
4840 (lambda* (#:key inputs #:allow-other-keys)
4841 (substitute* '("pairash.c"
4843 (("perl") (which "perl"))
4844 (("([\"`| ])awk" _ prefix)
4845 (string-append prefix (which "awk")))
4846 (("grep") (which "grep")))
4849 (add-after 'install 'wrap-programs
4850 (lambda* (#:key outputs #:allow-other-keys)
4851 (let* ((out (assoc-ref outputs "out"))
4852 (bin (string-append out "/bin"))
4853 (path (string-append
4854 (assoc-ref %build-inputs "coreutils") "/bin:")))
4855 (for-each (lambda (file)
4857 `("PATH" ":" prefix (,path))))
4865 ("coreutils" ,coreutils)))
4866 (home-page "https://mafft.cbrc.jp/alignment/software/")
4867 (synopsis "Multiple sequence alignment program")
4869 "MAFFT offers a range of multiple alignment methods for nucleotide and
4870 protein sequences. For instance, it offers L-INS-i (accurate; for alignment
4871 of <~200 sequences) and FFT-NS-2 (fast; for alignment of <~30,000
4873 (license (license:non-copyleft
4874 "https://mafft.cbrc.jp/alignment/software/license.txt"
4875 "BSD-3 with different formatting"))))
4884 (url "https://github.com/marbl/mash")
4885 (commit (string-append "v" version))))
4886 (file-name (git-file-name name version))
4889 "049hwcc059p2fd9vwndn63laifvvsi0wmv84i6y1fr79k15dxwy6"))
4890 (modules '((guix build utils)))
4893 ;; Delete bundled kseq.
4894 ;; TODO: Also delete bundled murmurhash and open bloom filter.
4895 (delete-file "src/mash/kseq.h")
4897 (build-system gnu-build-system)
4899 `(#:tests? #f ; No tests.
4902 (string-append "--with-capnp=" (assoc-ref %build-inputs "capnproto"))
4903 (string-append "--with-gsl=" (assoc-ref %build-inputs "gsl")))
4904 #:make-flags (list "CC=gcc")
4906 (modify-phases %standard-phases
4907 (add-after 'unpack 'fix-includes
4909 (substitute* '("src/mash/Sketch.cpp"
4910 "src/mash/CommandFind.cpp"
4911 "src/mash/CommandScreen.cpp")
4912 (("^#include \"kseq\\.h\"")
4913 "#include \"htslib/kseq.h\""))
4915 (add-after 'fix-includes 'use-c++14
4917 ;; capnproto 0.7 requires c++14 to build
4918 (substitute* "configure.ac"
4919 (("c\\+\\+11") "c++14"))
4920 (substitute* "Makefile.in"
4921 (("c\\+\\+11") "c++14"))
4924 `(("autoconf" ,autoconf)
4925 ;; Capnproto and htslib are statically embedded in the final
4926 ;; application. Therefore we also list their licenses, below.
4927 ("capnproto" ,capnproto)
4928 ("htslib" ,htslib)))
4932 (supported-systems '("x86_64-linux"))
4933 (home-page "https://mash.readthedocs.io")
4934 (synopsis "Fast genome and metagenome distance estimation using MinHash")
4935 (description "Mash is a fast sequence distance estimator that uses the
4936 MinHash algorithm and is designed to work with genomes and metagenomes in the
4937 form of assemblies or reads.")
4938 (license (list license:bsd-3 ; Mash
4939 license:expat ; HTSlib and capnproto
4940 license:public-domain ; MurmurHash 3
4941 license:cpl1.0)))) ; Open Bloom Filter
4943 (define-public metabat
4951 (url "https://bitbucket.org/berkeleylab/metabat.git")
4952 (commit (string-append "v" version))))
4953 (file-name (git-file-name name version))
4956 "0hyg2smw1nz69mfvjpk45xyyychmda92c80a0cv7baji84ri4iyn"))
4957 (patches (search-patches "metabat-fix-compilation.patch"))))
4958 (build-system scons-build-system)
4960 `(#:scons ,scons-python2
4962 (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
4963 (string-append "BOOST_ROOT=" (assoc-ref %build-inputs "boost")))
4964 #:tests? #f ;; Tests are run during the build phase.
4966 (modify-phases %standard-phases
4967 (add-after 'unpack 'fix-includes
4969 (substitute* "src/BamUtils.h"
4970 (("^#include \"bam/bam\\.h\"")
4971 "#include \"samtools/bam.h\"")
4972 (("^#include \"bam/sam\\.h\"")
4973 "#include \"samtools/sam.h\""))
4974 (substitute* "src/KseqReader.h"
4975 (("^#include \"bam/kseq\\.h\"")
4976 "#include \"htslib/kseq.h\""))
4978 (add-after 'unpack 'fix-scons
4979 (lambda* (#:key inputs #:allow-other-keys)
4980 (substitute* "SConstruct"
4981 (("^htslib_dir += 'samtools'")
4982 (string-append "htslib_dir = '"
4983 (assoc-ref inputs "htslib")
4985 (("^samtools_dir = 'samtools'")
4986 (string-append "samtools_dir = '"
4987 (assoc-ref inputs "samtools")
4989 (("^findStaticOrShared\\('bam', hts_lib")
4990 (string-append "findStaticOrShared('bam', '"
4991 (assoc-ref inputs "samtools")
4993 ;; Do not distribute README.
4994 (("^env\\.Install\\(idir_prefix, 'README\\.md'\\)") ""))
4999 ("samtools" ,samtools)
5002 (home-page "https://bitbucket.org/berkeleylab/metabat")
5004 "Reconstruction of single genomes from complex microbial communities")
5006 "Grouping large genomic fragments assembled from shotgun metagenomic
5007 sequences to deconvolute complex microbial communities, or metagenome binning,
5008 enables the study of individual organisms and their interactions. MetaBAT is
5009 an automated metagenome binning software, which integrates empirical
5010 probabilistic distances of genome abundance and tetranucleotide frequency.")
5011 ;; The source code contains inline assembly.
5012 (supported-systems '("x86_64-linux" "i686-linux"))
5013 (license (license:non-copyleft "file://license.txt"
5014 "See license.txt in the distribution."))))
5016 (define-public minced
5023 (url "https://github.com/ctSkennerton/minced")
5025 (file-name (git-file-name name version))
5028 "1f5h9him0gd355cnx7p6pnxpknhckd4g0v62mg8zyhfbx9as25fv"))))
5029 (build-system gnu-build-system)
5031 `(#:test-target "test"
5033 (modify-phases %standard-phases
5035 (add-before 'check 'fix-test
5037 ;; Fix test for latest version.
5038 (substitute* "t/Aquifex_aeolicus_VF5.expected"
5039 (("minced:0.1.6") "minced:0.2.0"))
5041 (replace 'install ; No install target.
5042 (lambda* (#:key inputs outputs #:allow-other-keys)
5043 (let* ((out (assoc-ref outputs "out"))
5044 (bin (string-append out "/bin"))
5045 (wrapper (string-append bin "/minced")))
5046 ;; Minced comes with a wrapper script that tries to figure out where
5047 ;; it is located before running the JAR. Since these paths are known
5048 ;; to us, we build our own wrapper to avoid coreutils dependency.
5049 (install-file "minced.jar" bin)
5050 (with-output-to-file wrapper
5054 "#!" (assoc-ref inputs "bash") "/bin/sh\n\n"
5055 (assoc-ref inputs "jre") "/bin/java -jar "
5056 bin "/minced.jar \"$@\"\n"))))
5057 (chmod wrapper #o555))
5060 `(("jdk" ,icedtea "jdk")))
5063 ("jre" ,icedtea "out")))
5064 (home-page "https://github.com/ctSkennerton/minced")
5065 (synopsis "Mining CRISPRs in Environmental Datasets")
5067 "MinCED is a program to find Clustered Regularly Interspaced Short
5068 Palindromic Repeats (CRISPRs) in DNA sequences. It can be used for
5069 unassembled metagenomic reads, but is mainly designed for full genomes and
5070 assembled metagenomic sequence.")
5071 (license license:gpl3+)))
5079 (uri (pypi-uri "misopy" version))
5082 "1z3x0vd8ma7pdrnywj7i3kgwl89sdkwrrn62zl7r5calqaq2hyip"))
5083 (modules '((guix build utils)))
5085 (substitute* "setup.py"
5086 ;; Use setuptools, or else the executables are not
5088 (("distutils.core") "setuptools")
5089 ;; Use "gcc" instead of "cc" for compilation.
5091 "cc.set_executables(
5095 linker_so='gcc -shared'); defines"))
5097 (build-system python-build-system)
5099 `(#:python ,python-2 ; only Python 2 is supported
5100 #:tests? #f)) ; no "test" target
5102 `(("samtools" ,samtools)
5103 ("python-numpy" ,python2-numpy)
5104 ("python-pysam" ,python2-pysam)
5105 ("python-scipy" ,python2-scipy)
5106 ("python-matplotlib" ,python2-matplotlib)))
5108 `(("python-mock" ,python2-mock) ; for tests
5109 ("python-pytz" ,python2-pytz))) ; for tests
5110 (home-page "https://www.genes.mit.edu/burgelab/miso/index.html")
5111 (synopsis "Mixture of Isoforms model for RNA-Seq isoform quantitation")
5113 "MISO (Mixture-of-Isoforms) is a probabilistic framework that quantitates
5114 the expression level of alternatively spliced genes from RNA-Seq data, and
5115 identifies differentially regulated isoforms or exons across samples. By
5116 modeling the generative process by which reads are produced from isoforms in
5117 RNA-Seq, the MISO model uses Bayesian inference to compute the probability
5118 that a read originated from a particular isoform.")
5119 (license license:gpl2)))
5121 (define-public muscle
5124 (version "3.8.1551")
5126 (method url-fetch/tarbomb)
5128 "http://www.drive5.com/muscle/muscle_src_"
5132 "0bj8kj7sdizy3987zx6w7axihk40fk8rn76mpbqqjcnd64i5a367"))))
5133 (build-system gnu-build-system)
5135 `(#:make-flags (list "LDLIBS = -lm")
5137 (modify-phases %standard-phases
5140 ;; There are no tests, so just test if it runs.
5141 (lambda _ (invoke "./muscle" "-version") #t))
5143 (lambda* (#:key outputs #:allow-other-keys)
5144 (let* ((out (assoc-ref outputs "out"))
5145 (bin (string-append out "/bin")))
5146 (install-file "muscle" bin)
5148 (home-page "http://www.drive5.com/muscle")
5149 (synopsis "Multiple sequence alignment program")
5151 "MUSCLE aims to be a fast and accurate multiple sequence alignment
5152 program for nucleotide and protein sequences.")
5153 ;; License information found in 'muscle -h' and usage.cpp.
5154 (license license:public-domain)))
5156 (define-public newick-utils
5157 ;; There are no recent releases so we package from git.
5158 (let ((commit "da121155a977197cab9fbb15953ca1b40b11eb87"))
5160 (name "newick-utils")
5161 (version (string-append "1.6-1." (string-take commit 8)))
5165 (url "https://github.com/tjunier/newick_utils")
5167 (file-name (string-append name "-" version "-checkout"))
5170 "1hkw21rq1mwf7xp0rmbb2gqc0i6p11108m69i7mr7xcjl268pxnb"))))
5171 (build-system gnu-build-system)
5173 ;; XXX: TODO: Enable Lua and Guile bindings.
5174 ;; https://github.com/tjunier/newick_utils/issues/13
5175 `(("libxml2" ,libxml2)
5179 `(("autoconf" ,autoconf)
5180 ("automake" ,automake)
5181 ("libtool" ,libtool)))
5182 (synopsis "Programs for working with newick format phylogenetic trees")
5184 "Newick-utils is a suite of utilities for processing phylogenetic trees
5185 in Newick format. Functions include re-rooting, extracting subtrees,
5186 trimming, pruning, condensing, drawing (ASCII graphics or SVG).")
5187 (home-page "https://github.com/tjunier/newick_utils")
5188 (license license:bsd-3))))
5197 "https://github.com/wwood/OrfM/releases/download/v"
5198 version "/orfm-" version ".tar.gz"))
5201 "16iigyr2gd8x0imzkk1dr3k5xsds9bpmwg31ayvjg0f4pir9rwqr"))))
5202 (build-system gnu-build-system)
5203 (inputs `(("zlib" ,zlib)))
5205 `(("ruby-bio-commandeer" ,ruby-bio-commandeer)
5206 ("ruby-rspec" ,ruby-rspec)
5208 (synopsis "Simple and not slow open reading frame (ORF) caller")
5210 "An ORF caller finds stretches of DNA that, when translated, are not
5211 interrupted by stop codons. OrfM finds and prints these ORFs.")
5212 (home-page "https://github.com/wwood/OrfM")
5213 (license license:lgpl3+)))
5215 (define-public python2-pbcore
5217 (name "python2-pbcore")
5221 (uri (pypi-uri "pbcore" version))
5224 "1kjmv891d6qbpp4shhhvkl02ff4q5xlpnls2513sm2cjcrs52f1i"))))
5225 (build-system python-build-system)
5227 `(#:python ,python-2 ;pbcore < 2.0 requires Python 2.7
5228 #:phases (modify-phases %standard-phases
5229 (add-after 'unpack 'remove-sphinx-dependency
5231 ;; Sphinx is only required for documentation tests, which
5232 ;; we do not run; furthermore it depends on python2-sphinx
5233 ;; which is no longer maintained.
5234 (substitute* "requirements-dev.txt"
5238 `(("python-cython" ,python2-cython)
5239 ("python-numpy" ,python2-numpy)
5240 ("python-pysam" ,python2-pysam)
5241 ("python-h5py" ,python2-h5py)))
5243 `(("python-nose" ,python2-nose)
5244 ("python-pyxb" ,python2-pyxb)))
5245 (home-page "https://pacificbiosciences.github.io/pbcore/")
5246 (synopsis "Library for reading and writing PacBio data files")
5248 "The pbcore package provides Python APIs for interacting with PacBio data
5249 files and writing bioinformatics applications.")
5250 (license license:bsd-3)))
5252 (define-public python2-warpedlmm
5254 (name "python2-warpedlmm")
5259 (uri (pypi-uri "WarpedLMM" version ".zip"))
5262 "1agfz6zqa8nc6cw47yh0s3y14gkpa9wqazwcj7mwwj3ffnw39p3j"))))
5263 (build-system python-build-system)
5265 `(#:python ,python-2 ; requires Python 2.7
5266 #:tests? #f ; test data are not included
5268 (modify-phases %standard-phases
5269 (add-after 'unpack 'use-weave
5271 (substitute* "warpedlmm/util/linalg.py"
5272 (("from scipy import linalg, weave")
5273 "from scipy import linalg\nimport weave"))
5276 `(("python-scipy" ,python2-scipy)
5277 ("python-numpy" ,python2-numpy)
5278 ("python-matplotlib" ,python2-matplotlib)
5279 ("python-fastlmm" ,python2-fastlmm)
5280 ("python-pandas" ,python2-pandas)
5281 ("python-pysnptools" ,python2-pysnptools)
5282 ("python-weave" ,python2-weave)))
5284 `(("python-mock" ,python2-mock)
5285 ("python-nose" ,python2-nose)
5287 (home-page "https://github.com/PMBio/warpedLMM")
5288 (synopsis "Implementation of warped linear mixed models")
5290 "WarpedLMM is a Python implementation of the warped linear mixed model,
5291 which automatically learns an optimal warping function (or transformation) for
5292 the phenotype as it models the data.")
5293 (license license:asl2.0)))
5295 (define-public pbtranscript-tofu
5296 (let ((commit "8f5467fe6a4472bcfb4226c8720993c8507adfe4"))
5298 (name "pbtranscript-tofu")
5299 (version (string-append "2.2.3." (string-take commit 7)))
5303 (url "https://github.com/PacificBiosciences/cDNA_primer")
5305 (file-name (string-append name "-" version "-checkout"))
5308 "1lgnpi35ihay42qx0b6yl3kkgra723i413j33kvs0kvs61h82w0f"))
5309 (modules '((guix build utils)))
5312 ;; remove bundled Cython sources
5313 (delete-file "pbtranscript-tofu/pbtranscript/Cython-0.20.1.tar.gz")
5315 (build-system python-build-system)
5317 `(#:python ,python-2
5318 ;; FIXME: Tests fail with "No such file or directory:
5319 ;; pbtools/pbtranscript/modified_bx_intervals/intersection_unique.so"
5322 (modify-phases %standard-phases
5323 (add-after 'unpack 'enter-directory
5325 (chdir "pbtranscript-tofu/pbtranscript/")
5327 ;; With setuptools version 18.0 and later this setup.py hack causes
5328 ;; a build error, so we disable it.
5329 (add-after 'enter-directory 'patch-setuppy
5331 (substitute* "setup.py"
5332 (("if 'setuptools.extension' in sys.modules:")
5336 `(("python-numpy" ,python2-numpy)
5337 ("python-bx-python" ,python2-bx-python)
5338 ("python-networkx" ,python2-networkx)
5339 ("python-scipy" ,python2-scipy)
5340 ("python-pbcore" ,python2-pbcore)
5341 ("python-h5py" ,python2-h5py)))
5343 `(("python-cython" ,python2-cython)
5344 ("python-nose" ,python2-nose)))
5345 (home-page "https://github.com/PacificBiosciences/cDNA_primer")
5346 (synopsis "Analyze transcriptome data generated with the Iso-Seq protocol")
5348 "pbtranscript-tofu contains scripts to analyze transcriptome data
5349 generated using the PacBio Iso-Seq protocol.")
5350 (license license:bsd-3))))
5352 (define-public prank
5359 "http://wasabiapp.org/download/prank/prank.source."
5363 "0nc8g9c5rkdxcir46s0in9ci1sxwzbjibxrvkksf22ybnplvagk2"))))
5364 (build-system gnu-build-system)
5367 (modify-phases %standard-phases
5368 (add-after 'unpack 'enter-src-dir
5372 (add-after 'unpack 'remove-m64-flag
5373 ;; Prank will build with the correct 'bit-ness' without this flag
5374 ;; and this allows building on 32-bit machines.
5375 (lambda _ (substitute* "src/Makefile"
5380 (lambda* (#:key outputs #:allow-other-keys)
5381 (let* ((out (assoc-ref outputs "out"))
5382 (bin (string-append out "/bin"))
5383 (man (string-append out "/share/man/man1"))
5384 (path (string-append
5385 (assoc-ref %build-inputs "mafft") "/bin:"
5386 (assoc-ref %build-inputs "exonerate") "/bin:"
5387 (assoc-ref %build-inputs "bppsuite") "/bin")))
5388 (install-file "prank" bin)
5389 (wrap-program (string-append bin "/prank")
5390 `("PATH" ":" prefix (,path)))
5391 (install-file "prank.1" man))
5395 ("exonerate" ,exonerate)
5396 ("bppsuite" ,bppsuite)))
5397 (home-page "http://wasabiapp.org/software/prank/")
5398 (synopsis "Probabilistic multiple sequence alignment program")
5400 "PRANK is a probabilistic multiple sequence alignment program for DNA,
5401 codon and amino-acid sequences. It is based on a novel algorithm that treats
5402 insertions correctly and avoids over-estimation of the number of deletion
5403 events. In addition, PRANK borrows ideas from maximum likelihood methods used
5404 in phylogenetics and correctly takes into account the evolutionary distances
5405 between sequences. Lastly, PRANK allows for defining a potential structure
5406 for sequences to be aligned and then, simultaneously with the alignment,
5407 predicts the locations of structural units in the sequences.")
5408 (license license:gpl2+)))
5410 (define-public proteinortho
5412 (name "proteinortho")
5417 (url "https://gitlab.com/paulklemm_PHD/proteinortho.git")
5418 (commit (string-append "v" version))))
5419 (file-name (git-file-name name version))
5422 "0pmy617zy2z2w6hjqxjhf3rzikf5n3mpia80ysq8233vfr7wrzff"))
5423 (modules '((guix build utils)))
5426 ;; remove pre-built scripts
5427 (delete-file-recursively "src/BUILD/")
5429 (build-system gnu-build-system)
5431 `(#:test-target "test"
5432 #:make-flags '("CC=gcc")
5434 (modify-phases %standard-phases
5436 ;; There is no configure script, so we modify the Makefile directly.
5437 (lambda* (#:key outputs #:allow-other-keys)
5438 (substitute* "Makefile"
5441 "INSTALLDIR=" (assoc-ref outputs "out") "/bin\n")))
5443 (add-before 'install 'make-install-directory
5444 ;; The install directory is not created during 'make install'.
5445 (lambda* (#:key outputs #:allow-other-keys)
5446 (mkdir-p (string-append (assoc-ref outputs "out") "/bin"))
5448 (add-after 'install 'wrap-programs
5449 (lambda* (#:key inputs outputs #:allow-other-keys)
5450 (let ((path (getenv "PATH"))
5451 (out (assoc-ref outputs "out")))
5452 (for-each (lambda (script)
5453 (wrap-script script `("PATH" ":" prefix (,path))))
5454 (cons (string-append out "/bin/proteinortho")
5455 (find-files out "\\.(pl|py)$"))))
5458 `(("guile" ,guile-3.0) ; for wrap-script
5459 ("diamond" ,diamond)
5461 ("python" ,python-wrapper)
5464 ("openblas" ,openblas)))
5466 `(("which" ,which)))
5467 (home-page "http://www.bioinf.uni-leipzig.de/Software/proteinortho")
5468 (synopsis "Detect orthologous genes across species")
5470 "Proteinortho is a tool to detect orthologous genes across different
5471 species. For doing so, it compares similarities of given gene sequences and
5472 clusters them to find significant groups. The algorithm was designed to handle
5473 large-scale data and can be applied to hundreds of species at once.")
5474 (license license:gpl3+)))
5476 (define-public pyicoteo
5484 (url "https://bitbucket.org/regulatorygenomicsupf/pyicoteo.git")
5485 (commit (string-append "v" version))))
5486 (file-name (git-file-name name version))
5489 "0hz5g8d25lbjy1wpscr490l0lmyvaix893hhax4fxnh1h9w34w8p"))))
5490 (build-system python-build-system)
5492 `(#:python ,python-2 ; does not work with Python 3
5493 #:tests? #f)) ; there are no tests
5495 `(("python2-matplotlib" ,python2-matplotlib)))
5496 (home-page "https://bitbucket.org/regulatorygenomicsupf/pyicoteo")
5497 (synopsis "Analyze high-throughput genetic sequencing data")
5499 "Pyicoteo is a suite of tools for the analysis of high-throughput genetic
5500 sequencing data. It works with genomic coordinates. There are currently six
5501 different command-line tools:
5504 @item pyicoregion: for generating exploratory regions automatically;
5505 @item pyicoenrich: for differential enrichment between two conditions;
5506 @item pyicoclip: for calling CLIP-Seq peaks without a control;
5507 @item pyicos: for genomic coordinates manipulation;
5508 @item pyicoller: for peak calling on punctuated ChIP-Seq;
5509 @item pyicount: to count how many reads from N experiment files overlap in a
5511 @item pyicotrocol: to combine operations from pyicoteo.
5513 (license license:gpl3+)))
5515 (define-public prodigal
5518 ;; Check for a new home page when updating this package:
5519 ;; https://github.com/hyattpd/Prodigal/issues/36#issuecomment-536617588
5524 (url "https://github.com/hyattpd/Prodigal")
5525 (commit (string-append "v" version))))
5526 (file-name (git-file-name name version))
5529 "1fs1hqk83qjbjhrvhw6ni75zakx5ki1ayy3v6wwkn3xvahc9hi5s"))))
5530 (build-system gnu-build-system)
5532 `(#:tests? #f ; no check target
5533 #:make-flags (list (string-append "INSTALLDIR="
5534 (assoc-ref %outputs "out")
5537 (modify-phases %standard-phases
5538 (delete 'configure))))
5539 (home-page "https://github.com/hyattpd/Prodigal")
5540 (synopsis "Protein-coding gene prediction for Archaea and Bacteria")
5542 "Prodigal runs smoothly on finished genomes, draft genomes, and
5543 metagenomes, providing gene predictions in GFF3, Genbank, or Sequin table
5544 format. It runs quickly, in an unsupervised fashion, handles gaps, handles
5545 partial genes, and identifies translation initiation sites.")
5546 (license license:gpl3+)))
5548 (define-public roary
5556 "mirror://cpan/authors/id/A/AJ/AJPAGE/Bio-Roary-"
5560 "0qxrds9wx7cfhlkihrp6697kx0flhhxymap9fwan0b3rbdhcnmff"))))
5561 (build-system perl-build-system)
5564 (modify-phases %standard-phases
5569 ;; The tests are not run by default, so we run each test file
5571 (setenv "PATH" (string-append (getcwd) "/bin" ":"
5573 (setenv "PERL5LIB" (string-append (getcwd) "/lib" ":"
5574 (getenv "PERL5LIB")))
5575 (for-each (lambda (file)
5576 (display file)(display "\n")
5577 (invoke "perl" file))
5578 (find-files "t" ".*\\.t$"))
5581 ;; There is no 'install' target in the Makefile.
5582 (lambda* (#:key outputs #:allow-other-keys)
5583 (let* ((out (assoc-ref outputs "out"))
5584 (bin (string-append out "/bin"))
5585 (perl (string-append out "/lib/perl5/site_perl"))
5586 (roary-plots "contrib/roary_plots"))
5589 (copy-recursively "bin" bin)
5590 (copy-recursively "lib" perl)
5592 (add-after 'install 'wrap-programs
5593 (lambda* (#:key inputs outputs #:allow-other-keys)
5594 (let* ((out (assoc-ref outputs "out"))
5595 (perl5lib (getenv "PERL5LIB"))
5596 (path (getenv "PATH")))
5597 (for-each (lambda (prog)
5598 (let ((binary (string-append out "/" prog)))
5599 (wrap-program binary
5600 `("PERL5LIB" ":" prefix
5601 (,(string-append perl5lib ":" out
5602 "/lib/perl5/site_perl"))))
5603 (wrap-program binary
5605 (,(string-append path ":" out "/bin"))))))
5606 (find-files "bin" ".*[^R]$"))
5608 (string-append out "/bin/roary-create_pan_genome_plots.R"))
5609 (r-site-lib (getenv "R_LIBS_SITE"))
5611 (string-append (assoc-ref inputs "coreutils") "/bin")))
5613 `("R_LIBS_SITE" ":" prefix
5614 (,(string-append r-site-lib ":" out "/site-library/"))))
5617 (,(string-append coreutils-path ":" out "/bin"))))))
5620 `(("perl-env-path" ,perl-env-path)
5621 ("perl-test-files" ,perl-test-files)
5622 ("perl-test-most" ,perl-test-most)
5623 ("perl-test-output" ,perl-test-output)))
5625 `(("perl-array-utils" ,perl-array-utils)
5626 ("bioperl" ,bioperl-minimal)
5627 ("perl-digest-md5-file" ,perl-digest-md5-file)
5628 ("perl-exception-class" ,perl-exception-class)
5629 ("perl-file-find-rule" ,perl-file-find-rule)
5630 ("perl-file-grep" ,perl-file-grep)
5631 ("perl-file-slurper" ,perl-file-slurper)
5632 ("perl-file-which" ,perl-file-which)
5633 ("perl-graph" ,perl-graph)
5634 ("perl-graph-readwrite" ,perl-graph-readwrite)
5635 ("perl-log-log4perl" ,perl-log-log4perl)
5636 ("perl-moose" ,perl-moose)
5637 ("perl-perlio-utf8_strict" ,perl-perlio-utf8_strict)
5638 ("perl-text-csv" ,perl-text-csv)
5639 ("bedtools" ,bedtools)
5643 ("parallel" ,parallel)
5646 ("fasttree" ,fasttree)
5650 ("r-minimal" ,r-minimal)
5651 ("r-ggplot2" ,r-ggplot2)
5652 ("coreutils" ,coreutils)))
5653 (home-page "https://sanger-pathogens.github.io/Roary/")
5654 (synopsis "High speed stand-alone pan genome pipeline")
5656 "Roary is a high speed stand alone pan genome pipeline, which takes
5657 annotated assemblies in GFF3 format (produced by the Prokka program) and
5658 calculates the pan genome. Using a standard desktop PC, it can analyse
5659 datasets with thousands of samples, without compromising the quality of the
5660 results. 128 samples can be analysed in under 1 hour using 1 GB of RAM and a
5661 single processor. Roary is not intended for metagenomics or for comparing
5662 extremely diverse sets of genomes.")
5663 (license license:gpl3)))
5665 (define-public raxml
5673 (url "https://github.com/stamatak/standard-RAxML")
5674 (commit (string-append "v" version))))
5675 (file-name (git-file-name name version))
5678 "1jqjzhch0rips0vp04prvb8vmc20c5pdmsqn8knadcf91yy859fh"))))
5679 (build-system gnu-build-system)
5681 `(#:tests? #f ; There are no tests.
5682 ;; Use 'standard' Makefile rather than SSE or AVX ones.
5683 #:make-flags (list "-f" "Makefile.HYBRID.gcc")
5685 (modify-phases %standard-phases
5688 (lambda* (#:key outputs #:allow-other-keys)
5689 (let* ((out (assoc-ref outputs "out"))
5690 (bin (string-append out "/bin"))
5691 (executable "raxmlHPC-HYBRID"))
5692 (install-file executable bin)
5693 (symlink (string-append bin "/" executable) "raxml"))
5696 `(("openmpi" ,openmpi)))
5697 (home-page "https://cme.h-its.org/exelixis/web/software/raxml/index.html")
5698 (synopsis "Randomized Axelerated Maximum Likelihood phylogenetic trees")
5700 "RAxML is a tool for phylogenetic analysis and post-analysis of large
5702 ;; The source includes x86 specific code
5703 (supported-systems '("x86_64-linux" "i686-linux"))
5704 (license license:gpl2+)))
5714 (url "https://github.com/deweylab/RSEM")
5715 (commit (string-append "v" version))))
5717 (base32 "1jlq11d1p8qp64w75yj8cnbbd1a93viq10pzsbwal7vdn8fg13j1"))
5718 (file-name (git-file-name name version))
5719 (modules '((guix build utils)))
5722 ;; remove bundled copy of boost and samtools
5723 (delete-file-recursively "boost")
5724 (delete-file-recursively "samtools-1.3")
5726 (build-system gnu-build-system)
5728 `(#:tests? #f ;no "check" target
5730 (list (string-append "BOOST="
5731 (assoc-ref %build-inputs "boost")
5733 (string-append "SAMHEADERS="
5734 (assoc-ref %build-inputs "htslib")
5735 "/include/htslib/sam.h")
5736 (string-append "SAMLIBS="
5737 (assoc-ref %build-inputs "htslib")
5740 (modify-phases %standard-phases
5741 ;; No "configure" script.
5742 ;; Do not build bundled samtools library.
5745 (substitute* "Makefile"
5746 (("^all : \\$\\(PROGRAMS\\).*") "all: $(PROGRAMS)\n")
5747 (("^\\$\\(SAMLIBS\\).*") ""))
5750 (lambda* (#:key outputs #:allow-other-keys)
5751 (let* ((out (string-append (assoc-ref outputs "out")))
5752 (bin (string-append out "/bin/"))
5753 (perl (string-append out "/lib/perl5/site_perl")))
5756 (for-each (lambda (file)
5757 (install-file file bin))
5758 (find-files "." "rsem-.*"))
5759 (install-file "rsem_perl_utils.pm" perl))
5761 (add-after 'install 'wrap-program
5762 (lambda* (#:key outputs #:allow-other-keys)
5763 (let ((out (assoc-ref outputs "out")))
5764 (for-each (lambda (prog)
5765 (wrap-program (string-append out "/bin/" prog)
5766 `("PERL5LIB" ":" prefix
5767 (,(string-append out "/lib/perl5/site_perl")))))
5768 '("rsem-calculate-expression"
5770 "rsem-generate-data-matrix"
5771 "rsem-generate-ngvector"
5772 "rsem-plot-transcript-wiggles"
5773 "rsem-prepare-reference"
5775 "rsem-run-prsem-testing-procedure")))
5779 ("r-minimal" ,r-minimal)
5781 ("htslib" ,htslib-1.3)
5783 (home-page "http://deweylab.biostat.wisc.edu/rsem/")
5784 (synopsis "Estimate gene expression levels from RNA-Seq data")
5786 "RSEM is a software package for estimating gene and isoform expression
5787 levels from RNA-Seq data. The RSEM package provides a user-friendly
5788 interface, supports threads for parallel computation of the EM algorithm,
5789 single-end and paired-end read data, quality scores, variable-length reads and
5790 RSPD estimation. In addition, it provides posterior mean and 95% credibility
5791 interval estimates for expression levels. For visualization, it can generate
5792 BAM and Wiggle files in both transcript-coordinate and genomic-coordinate.")
5793 (license license:gpl3+)))
5795 (define-public rseqc
5803 (string-append "mirror://sourceforge/rseqc/"
5804 "RSeQC-" version ".tar.gz"))
5807 "0gbb9iyb7swiv5455fm5rg98r7l6qn27v564yllqjd574hncpx6m"))))
5808 (build-system python-build-system)
5810 `(("python-cython" ,python-cython)
5811 ("python-bx-python" ,python-bx-python)
5812 ("python-pybigwig" ,python-pybigwig)
5813 ("python-pysam" ,python-pysam)
5814 ("python-numpy" ,python-numpy)
5817 `(("python-nose" ,python-nose)))
5818 (home-page "http://rseqc.sourceforge.net/")
5819 (synopsis "RNA-seq quality control package")
5821 "RSeQC provides a number of modules that can comprehensively evaluate
5822 high throughput sequence data, especially RNA-seq data. Some basic modules
5823 inspect sequence quality, nucleotide composition bias, PCR bias and GC bias,
5824 while RNA-seq specific modules evaluate sequencing saturation, mapped reads
5825 distribution, coverage uniformity, strand specificity, etc.")
5826 (license license:gpl3+)))
5829 ;; There are no release tarballs. According to the installation
5830 ;; instructions at http://seek.princeton.edu/installation.jsp, the latest
5831 ;; stable release is identified by this changeset ID.
5832 (let ((changeset "2329130")
5836 (version (string-append "0-" revision "." changeset))
5840 (url "https://bitbucket.org/libsleipnir/sleipnir")
5841 (changeset changeset)))
5842 (file-name (string-append name "-" version "-checkout"))
5845 "0qrvilwh18dpbhkf92qvxbmay0j75ra3jg2wrhz67gf538zzphsx"))))
5846 (build-system gnu-build-system)
5848 `(#:modules ((srfi srfi-1)
5849 (guix build gnu-build-system)
5852 (let ((dirs '("SeekMiner"
5858 (modify-phases %standard-phases
5861 (substitute* "gen_tools_am"
5862 (("/usr/bin/env.*") (which "perl")))
5863 (invoke "bash" "gen_auto")
5865 (add-after 'build 'build-additional-tools
5866 (lambda* (#:key make-flags #:allow-other-keys)
5867 (for-each (lambda (dir)
5868 (with-directory-excursion (string-append "tools/" dir)
5869 (apply invoke "make" make-flags)))
5872 (add-after 'install 'install-additional-tools
5873 (lambda* (#:key make-flags #:allow-other-keys)
5874 (for-each (lambda (dir)
5875 (with-directory-excursion (string-append "tools/" dir)
5876 (apply invoke `("make" ,@make-flags "install"))))
5883 ("readline" ,readline)
5884 ("gengetopt" ,gengetopt)
5885 ("log4cpp" ,log4cpp)))
5887 `(("autoconf" ,autoconf)
5888 ("automake" ,automake)
5890 (home-page "http://seek.princeton.edu")
5891 (synopsis "Gene co-expression search engine")
5893 "SEEK is a computational gene co-expression search engine. SEEK provides
5894 biologists with a way to navigate the massive human expression compendium that
5895 now contains thousands of expression datasets. SEEK returns a robust ranking
5896 of co-expressed genes in the biological area of interest defined by the user's
5897 query genes. It also prioritizes thousands of expression datasets according
5898 to the user's query of interest.")
5899 (license license:cc-by3.0))))
5901 (define-public samtools
5909 (string-append "mirror://sourceforge/samtools/samtools/"
5910 version "/samtools-" version ".tar.bz2"))
5913 "1dp5wknak4arnw5ghhif9mmljlfnw5bgm91wib7z0j8wdjywx0z2"))
5914 (modules '((guix build utils)))
5916 ;; Delete bundled htslib.
5917 (delete-file-recursively "htslib-1.11")
5919 (build-system gnu-build-system)
5921 `(#:modules ((ice-9 ftw)
5923 (guix build gnu-build-system)
5925 #:configure-flags (list "--with-ncurses")
5927 (modify-phases %standard-phases
5928 (add-after 'unpack 'patch-tests
5930 (substitute* "test/test.pl"
5931 ;; The test script calls out to /bin/bash
5932 (("/bin/bash") (which "bash")))
5934 (add-after 'install 'install-library
5935 (lambda* (#:key outputs #:allow-other-keys)
5936 (let ((lib (string-append (assoc-ref outputs "out") "/lib")))
5937 (install-file "libbam.a" lib)
5939 (add-after 'install 'install-headers
5940 (lambda* (#:key outputs #:allow-other-keys)
5941 (let ((include (string-append (assoc-ref outputs "out")
5942 "/include/samtools/")))
5943 (for-each (lambda (file)
5944 (install-file file include))
5945 (scandir "." (lambda (name) (string-match "\\.h$" name))))
5947 (native-inputs `(("pkg-config" ,pkg-config)))
5949 `(("htslib" ,htslib)
5950 ("ncurses" ,ncurses)
5954 (home-page "http://samtools.sourceforge.net")
5955 (synopsis "Utilities to efficiently manipulate nucleotide sequence alignments")
5957 "Samtools implements various utilities for post-processing nucleotide
5958 sequence alignments in the SAM, BAM, and CRAM formats, including indexing,
5959 variant calling (in conjunction with bcftools), and a simple alignment
5961 (license license:expat)))
5963 (define-public samtools-1.9
5964 (package (inherit samtools)
5971 (string-append "mirror://sourceforge/samtools/samtools/"
5972 version "/samtools-" version ".tar.bz2"))
5975 "10ilqbmm7ri8z431sn90lvbjwizd0hhkf9rcqw8j823hf26nhgq8"))
5976 (modules '((guix build utils)))
5978 ;; Delete bundled htslib.
5979 (delete-file-recursively "htslib-1.9")
5982 `(("htslib" ,htslib-1.9)
5983 ("ncurses" ,ncurses)
5988 (define-public samtools-0.1
5989 ;; This is the most recent version of the 0.1 line of samtools. The input
5990 ;; and output formats differ greatly from that used and produced by samtools
5991 ;; 1.x and is still used in many bioinformatics pipelines.
5992 (package (inherit samtools)
5998 (string-append "mirror://sourceforge/samtools/samtools/"
5999 version "/samtools-" version ".tar.bz2"))
6001 (base32 "1m33xsfwz0s8qi45lylagfllqg7fphf4dr0780rsvw75av9wk06h"))))
6003 `(#:tests? #f ;no "check" target
6005 (list "LIBCURSES=-lncurses")
6006 ,@(substitute-keyword-arguments (package-arguments samtools)
6008 `(modify-phases ,phases
6010 (lambda* (#:key outputs #:allow-other-keys)
6011 (let ((bin (string-append
6012 (assoc-ref outputs "out") "/bin")))
6014 (install-file "samtools" bin)
6016 (delete 'patch-tests)
6017 (delete 'configure))))))))
6019 (define-public mosaik
6020 (let ((commit "5c25216d3522d6a33e53875cd76a6d65001e4e67"))
6025 ;; There are no release tarballs nor tags.
6028 (url "https://github.com/wanpinglee/MOSAIK")
6030 (file-name (string-append name "-" version))
6033 "17gj3s07cm77r41z92awh0bim7w7q7fbn0sf5nkqmcm1vw052qgw"))))
6034 (build-system gnu-build-system)
6036 `(#:tests? #f ; no tests
6037 #:make-flags (list "CC=gcc")
6039 (modify-phases %standard-phases
6041 (lambda _ (chdir "src") #t))
6043 (lambda* (#:key outputs #:allow-other-keys)
6044 (let ((bin (string-append (assoc-ref outputs "out")
6047 (copy-recursively "../bin" bin)
6051 ("zlib:static" ,zlib "static")
6053 (supported-systems '("x86_64-linux"))
6054 (home-page "https://github.com/wanpinglee/MOSAIK")
6055 (synopsis "Map nucleotide sequence reads to reference genomes")
6057 "MOSAIK is a program for mapping second and third-generation sequencing
6058 reads to a reference genome. MOSAIK can align reads generated by all the
6059 major sequencing technologies, including Illumina, Applied Biosystems SOLiD,
6060 Roche 454, Ion Torrent and Pacific BioSciences SMRT.")
6061 ;; MOSAIK is released under the GPLv2+ with the exception of third-party
6062 ;; code released into the public domain:
6063 ;; 1. fastlz by Ariya Hidayat - http://www.fastlz.org/
6064 ;; 2. MD5 implementation - RSA Data Security, RFC 1321
6065 (license (list license:gpl2+ license:public-domain)))))
6067 (define-public ngs-sdk
6074 (url "https://github.com/ncbi/ngs")
6076 (file-name (git-file-name name version))
6079 "1ix51c25hjn57w93qmwzw80xh2i34wx8j2hn7szh8p6w8i3az5qa"))))
6080 (build-system gnu-build-system)
6082 `(#:parallel-build? #f ; not supported
6083 #:tests? #f ; no "check" target
6085 (modify-phases %standard-phases
6087 (lambda* (#:key outputs #:allow-other-keys)
6088 (let ((out (assoc-ref outputs "out")))
6089 ;; Allow 'konfigure.perl' to find 'package.prl'.
6091 (string-append ".:" (getenv "PERL5LIB")))
6093 ;; The 'configure' script doesn't recognize things like
6094 ;; '--enable-fast-install'.
6095 (invoke "./configure"
6096 (string-append "--build-prefix=" (getcwd) "/build")
6097 (string-append "--prefix=" out))
6099 (add-after 'unpack 'enter-dir
6100 (lambda _ (chdir "ngs-sdk") #t)))))
6101 (native-inputs `(("perl" ,perl)))
6102 ;; According to the test
6103 ;; unless ($MARCH =~ /x86_64/i || $MARCH =~ /i?86/i)
6104 ;; in ngs-sdk/setup/konfigure.perl
6105 (supported-systems '("i686-linux" "x86_64-linux"))
6106 (home-page "https://github.com/ncbi/ngs")
6107 (synopsis "API for accessing Next Generation Sequencing data")
6109 "NGS is a domain-specific API for accessing reads, alignments and pileups
6110 produced from Next Generation Sequencing. The API itself is independent from
6111 any particular back-end implementation, and supports use of multiple back-ends
6113 (license license:public-domain)))
6115 (define-public java-ngs
6116 (package (inherit ngs-sdk)
6119 `(,@(substitute-keyword-arguments
6120 `(#:modules ((guix build gnu-build-system)
6124 ,@(package-arguments ngs-sdk))
6126 `(modify-phases ,phases
6127 (replace 'enter-dir (lambda _ (chdir "ngs-java") #t)))))))
6129 `(("jdk" ,icedtea "jdk")
6130 ("ngs-sdk" ,ngs-sdk)))
6131 (synopsis "Java bindings for NGS SDK")))
6133 (define-public ncbi-vdb
6140 (url "https://github.com/ncbi/ncbi-vdb")
6142 (file-name (git-file-name name version))
6145 "0m8hlxscidsfqm9x9fyi62q6lpf1dv5115kgjjgnrkl49q9c27m6"))))
6146 (build-system gnu-build-system)
6148 `(#:parallel-build? #f ; not supported
6149 #:tests? #f ; no "check" target
6150 #:make-flags '("HAVE_HDF5=1")
6152 (modify-phases %standard-phases
6153 (add-after 'unpack 'make-files-writable
6154 (lambda _ (for-each make-file-writable (find-files "." ".*")) #t))
6155 (add-before 'configure 'set-perl-search-path
6157 ;; Work around "dotless @INC" build failure.
6159 (string-append (getcwd) "/setup:"
6160 (getenv "PERL5LIB")))
6162 ;; See https://github.com/ncbi/ncbi-vdb/issues/14
6163 (add-after 'unpack 'patch-krypto-flags
6165 (substitute* "libs/krypto/Makefile"
6166 (("-Wa,-march=generic64\\+aes") "")
6167 (("-Wa,-march=generic64\\+sse4") ""))
6170 (lambda* (#:key inputs outputs #:allow-other-keys)
6171 (let ((out (assoc-ref outputs "out")))
6172 ;; Override include path for libmagic
6173 (substitute* "setup/package.prl"
6174 (("name => 'magic', Include => '/usr/include'")
6175 (string-append "name=> 'magic', Include => '"
6176 (assoc-ref inputs "libmagic")
6179 ;; Install kdf5 library (needed by sra-tools)
6180 (substitute* "build/Makefile.install"
6181 (("LIBRARIES_TO_INSTALL =")
6182 "LIBRARIES_TO_INSTALL = kdf5.$(VERSION_LIBX) kdf5.$(VERSION_SHLX)"))
6184 (substitute* "build/Makefile.env"
6185 (("CFLAGS =" prefix)
6186 (string-append prefix "-msse2 ")))
6188 ;; Override search path for ngs-java
6189 (substitute* "setup/package.prl"
6190 (("/usr/local/ngs/ngs-java")
6191 (assoc-ref inputs "java-ngs")))
6193 ;; The 'configure' script doesn't recognize things like
6194 ;; '--enable-fast-install'.
6195 (invoke "./configure"
6196 (string-append "--build-prefix=" (getcwd) "/build")
6197 (string-append "--prefix=" (assoc-ref outputs "out"))
6198 (string-append "--debug")
6199 (string-append "--with-xml2-prefix="
6200 (assoc-ref inputs "libxml2"))
6201 (string-append "--with-ngs-sdk-prefix="
6202 (assoc-ref inputs "ngs-sdk"))
6203 (string-append "--with-hdf5-prefix="
6204 (assoc-ref inputs "hdf5")))
6206 (add-after 'install 'install-interfaces
6207 (lambda* (#:key outputs #:allow-other-keys)
6208 ;; Install interface libraries. On i686 the interface libraries
6209 ;; are installed to "linux/gcc/i386", so we need to use the Linux
6210 ;; architecture name ("i386") instead of the target system prefix
6212 (mkdir (string-append (assoc-ref outputs "out") "/ilib"))
6213 (copy-recursively (string-append "build/ncbi-vdb/linux/gcc/"
6214 ,(system->linux-architecture
6215 (or (%current-target-system)
6218 (string-append (assoc-ref outputs "out")
6220 ;; Install interface headers
6221 (copy-recursively "interfaces"
6222 (string-append (assoc-ref outputs "out")
6225 ;; These files are needed by sra-tools.
6226 (add-after 'install 'install-configuration-files
6227 (lambda* (#:key outputs #:allow-other-keys)
6228 (let ((target (string-append (assoc-ref outputs "out") "/kfg")))
6230 (install-file "libs/kfg/default.kfg" target)
6231 (install-file "libs/kfg/certs.kfg" target))
6234 `(("libxml2" ,libxml2)
6235 ("ngs-sdk" ,ngs-sdk)
6236 ("java-ngs" ,java-ngs)
6239 (native-inputs `(("perl" ,perl)))
6240 ;; NCBI-VDB requires SSE capability.
6241 (supported-systems '("i686-linux" "x86_64-linux"))
6242 (home-page "https://github.com/ncbi/ncbi-vdb")
6243 (synopsis "Database engine for genetic information")
6245 "The NCBI-VDB library implements a highly compressed columnar data
6246 warehousing engine that is most often used to store genetic information.
6247 Databases are stored in a portable image within the file system, and can be
6248 accessed/downloaded on demand across HTTP.")
6249 (license license:public-domain)))
6251 (define-public plink
6259 "http://pngu.mgh.harvard.edu/~purcell/plink/dist/plink-"
6260 version "-src.zip"))
6262 (base32 "0as8gxm4pjyc8dxmm1sl873rrd7wn5qs0l29nqfnl31x8i467xaa"))
6263 (patches (search-patches "plink-1.07-unclobber-i.patch"
6264 "plink-endian-detection.patch"))))
6265 (build-system gnu-build-system)
6267 '(#:tests? #f ;no "check" target
6268 #:make-flags (list (string-append "LIB_LAPACK="
6269 (assoc-ref %build-inputs "lapack")
6270 "/lib/liblapack.so")
6273 ;; disable phoning home
6276 (modify-phases %standard-phases
6277 ;; no "configure" script
6280 (lambda* (#:key outputs #:allow-other-keys)
6281 (let ((bin (string-append (assoc-ref outputs "out")
6283 (install-file "plink" bin)
6287 ("lapack" ,lapack)))
6289 `(("unzip" ,unzip)))
6290 (home-page "http://pngu.mgh.harvard.edu/~purcell/plink/")
6291 (synopsis "Whole genome association analysis toolset")
6293 "PLINK is a whole genome association analysis toolset, designed to
6294 perform a range of basic, large-scale analyses in a computationally efficient
6295 manner. The focus of PLINK is purely on analysis of genotype/phenotype data,
6296 so there is no support for steps prior to this (e.g. study design and
6297 planning, generating genotype or CNV calls from raw data). Through
6298 integration with gPLINK and Haploview, there is some support for the
6299 subsequent visualization, annotation and storage of results.")
6300 ;; Code is released under GPLv2, except for fisher.h, which is under
6302 (license (list license:gpl2 license:lgpl2.1+))))
6304 (define-public plink-ng
6305 (package (inherit plink)
6307 (version "2.00a2.3")
6312 (url "https://github.com/chrchang/plink-ng")
6313 (commit (string-append "v" version))))
6314 (file-name (git-file-name name version))
6316 (base32 "1p88lz9agzjlspjhciz61qjc36cfniv4nkxszyy0njqyc5rzc0cd"))))
6317 (build-system gnu-build-system)
6319 `(#:tests? #f ;no "check" target
6320 #:make-flags (list "BLASFLAGS=-llapack -lopenblas"
6321 "CFLAGS=-Wall -O2 -DDYNAMIC_ZLIB=1"
6323 "BIN=plink prettify"
6324 (string-append "CC=" ,(cc-for-target))
6325 (string-append "PREFIX=" (assoc-ref %outputs "out"))
6328 (modify-phases %standard-phases
6329 (add-after 'unpack 'chdir
6330 (lambda _ (chdir "1.9") #t))
6331 (delete 'configure)))) ; no "configure" script
6333 `(("lapack" ,lapack)
6334 ("openblas" ,openblas)
6336 (home-page "https://www.cog-genomics.org/plink/")
6337 (license license:gpl3+)))
6339 (define-public smithlab-cpp
6340 (let ((revision "1")
6341 (commit "728a097bec88c6f4b8528b685932049e660eff2e"))
6343 (name "smithlab-cpp")
6344 (version (string-append "0." revision "." (string-take commit 7)))
6348 (url "https://github.com/smithlabcode/smithlab_cpp")
6350 (file-name (string-append name "-" version "-checkout"))
6353 "0d476lmj312xk77kr9fzrv7z1bv96yfyx0w7y62ycmnfbx32ll74"))))
6354 (build-system gnu-build-system)
6356 `(#:modules ((guix build gnu-build-system)
6359 #:tests? #f ;no "check" target
6361 (modify-phases %standard-phases
6362 (add-after 'unpack 'use-samtools-headers
6364 (substitute* '("SAM.cpp"
6366 (("sam.h") "samtools/sam.h"))
6369 (lambda* (#:key outputs #:allow-other-keys)
6370 (let* ((out (assoc-ref outputs "out"))
6371 (lib (string-append out "/lib"))
6372 (include (string-append out "/include/smithlab-cpp")))
6375 (for-each (cut install-file <> lib)
6376 (find-files "." "\\.o$"))
6377 (for-each (cut install-file <> include)
6378 (find-files "." "\\.hpp$")))
6380 (delete 'configure))))
6382 `(("samtools" ,samtools-0.1)
6384 (home-page "https://github.com/smithlabcode/smithlab_cpp")
6385 (synopsis "C++ helper library for functions used in Smith lab projects")
6387 "Smithlab CPP is a C++ library that includes functions used in many of
6388 the Smith lab bioinformatics projects, such as a wrapper around Samtools data
6389 structures, classes for genomic regions, mapped sequencing reads, etc.")
6390 (license license:gpl3+))))
6392 (define-public preseq
6398 (uri (string-append "https://github.com/smithlabcode/preseq/"
6399 "releases/download/v" version
6400 "/preseq_v" version ".tar.bz2"))
6402 (base32 "149x9xmk1wy1gff85325yfzqc0qk4sgp1w6gbyj9cnji4x1dszbl"))
6403 (modules '((guix build utils)))
6405 ;; Remove bundled samtools.
6406 (delete-file-recursively "samtools")
6408 (build-system gnu-build-system)
6410 `(#:tests? #f ;no "check" target
6412 (modify-phases %standard-phases
6413 (delete 'configure))
6415 (list (string-append "PREFIX="
6416 (assoc-ref %outputs "out"))
6417 (string-append "LIBBAM="
6418 (assoc-ref %build-inputs "samtools")
6420 (string-append "SMITHLAB_CPP="
6421 (assoc-ref %build-inputs "smithlab-cpp")
6424 "INCLUDEDIRS=$(SMITHLAB_CPP)/../include/smithlab-cpp $(SAMTOOLS_DIR)")))
6427 ("samtools" ,samtools-0.1)
6428 ("smithlab-cpp" ,smithlab-cpp)
6430 (home-page "http://smithlabresearch.org/software/preseq/")
6431 (synopsis "Program for analyzing library complexity")
6433 "The preseq package is aimed at predicting and estimating the complexity
6434 of a genomic sequencing library, equivalent to predicting and estimating the
6435 number of redundant reads from a given sequencing depth and how many will be
6436 expected from additional sequencing using an initial sequencing experiment.
6437 The estimates can then be used to examine the utility of further sequencing,
6438 optimize the sequencing depth, or to screen multiple libraries to avoid low
6439 complexity samples.")
6440 (license license:gpl3+)))
6442 (define-public python-screed
6444 (name "python-screed")
6449 (uri (pypi-uri "screed" version))
6452 "148vcb7w2wr6a4w6vs2bsxanbqibxfk490zbcbg4m61s8669zdjx"))))
6453 (build-system python-build-system)
6456 (modify-phases %standard-phases
6457 ;; Tests must be run after installation, as the "screed" command does
6458 ;; not exist right after building.
6460 (add-after 'install 'check
6461 (lambda* (#:key inputs outputs #:allow-other-keys)
6462 (let ((out (assoc-ref outputs "out")))
6463 (setenv "PYTHONPATH"
6464 (string-append out "/lib/python"
6465 (string-take (string-take-right
6466 (assoc-ref inputs "python")
6469 (getenv "PYTHONPATH")))
6470 (setenv "PATH" (string-append out "/bin:" (getenv "PATH"))))
6471 (invoke "python" "setup.py" "test")
6474 `(("python-pytest" ,python-pytest)
6475 ("python-pytest-cov" ,python-pytest-cov)
6476 ("python-pytest-runner" ,python-pytest-runner)))
6478 `(("python-bz2file" ,python-bz2file)))
6479 (home-page "https://github.com/dib-lab/screed/")
6480 (synopsis "Short read sequence database utilities")
6481 (description "Screed parses FASTA and FASTQ files and generates databases.
6482 Values such as sequence name, sequence description, sequence quality and the
6483 sequence itself can be retrieved from these databases.")
6484 (license license:bsd-3)))
6486 (define-public python2-screed
6487 (package-with-python2 python-screed))
6489 (define-public sra-tools
6497 (url "https://github.com/ncbi/sra-tools")
6499 (file-name (git-file-name name version))
6502 "1cr2mijkfs5sm35ffjs6861qsd1qkgnhnbavdv65zg5d655abbjf"))))
6503 (build-system gnu-build-system)
6505 `(#:parallel-build? #f ; not supported
6506 #:tests? #f ; no "check" target
6508 (list (string-append "DEFAULT_CRT="
6509 (assoc-ref %build-inputs "ncbi-vdb")
6511 (string-append "DEFAULT_KFG="
6512 (assoc-ref %build-inputs "ncbi-vdb")
6514 (string-append "VDB_LIBDIR="
6515 (assoc-ref %build-inputs "ncbi-vdb")
6516 ,(if (string-prefix? "x86_64"
6517 (or (%current-target-system)
6522 (modify-phases %standard-phases
6523 (add-before 'configure 'set-perl-search-path
6525 ;; Work around "dotless @INC" build failure.
6527 (string-append (getcwd) "/setup:"
6528 (getenv "PERL5LIB")))
6531 (lambda* (#:key inputs outputs #:allow-other-keys)
6532 ;; The build system expects a directory containing the sources and
6533 ;; raw build output of ncbi-vdb, including files that are not
6534 ;; installed. Since we are building against an installed version of
6535 ;; ncbi-vdb, the following modifications are needed.
6536 (substitute* "setup/konfigure.perl"
6537 ;; Make the configure script look for the "ilib" directory of
6538 ;; "ncbi-vdb" without first checking for the existence of a
6539 ;; matching library in its "lib" directory.
6540 (("^ my \\$f = File::Spec->catdir\\(\\$libdir, \\$lib\\);")
6541 "my $f = File::Spec->catdir($ilibdir, $ilib);")
6542 ;; Look for interface libraries in ncbi-vdb's "ilib" directory.
6543 (("my \\$ilibdir = File::Spec->catdir\\(\\$builddir, 'ilib'\\);")
6544 "my $ilibdir = File::Spec->catdir($dir, 'ilib');"))
6547 (substitute* "tools/copycat/Makefile"
6548 (("smagic-static") "lmagic"))
6549 (substitute* "tools/driver-tool/utf8proc/Makefile"
6550 (("CC\\?=gcc") "myCC=gcc")
6551 (("\\(CC\\)") "(myCC)"))
6553 ;; The 'configure' script doesn't recognize things like
6554 ;; '--enable-fast-install'.
6555 (invoke "./configure"
6556 (string-append "--build-prefix=" (getcwd) "/build")
6557 (string-append "--prefix=" (assoc-ref outputs "out"))
6558 (string-append "--debug")
6559 (string-append "--with-fuse-prefix="
6560 (assoc-ref inputs "fuse"))
6561 (string-append "--with-magic-prefix="
6562 (assoc-ref inputs "libmagic"))
6563 ;; TODO: building with libxml2 fails with linker errors
6565 (string-append "--with-xml2-prefix="
6566 (assoc-ref inputs "libxml2"))
6567 (string-append "--with-ncbi-vdb-sources="
6568 (assoc-ref inputs "ncbi-vdb"))
6569 (string-append "--with-ncbi-vdb-build="
6570 (assoc-ref inputs "ncbi-vdb"))
6571 (string-append "--with-ngs-sdk-prefix="
6572 (assoc-ref inputs "ngs-sdk"))
6573 (string-append "--with-hdf5-prefix="
6574 (assoc-ref inputs "hdf5")))
6576 (native-inputs `(("perl" ,perl)))
6578 `(("ngs-sdk" ,ngs-sdk)
6579 ("ncbi-vdb" ,ncbi-vdb)
6584 ("python" ,python-wrapper)))
6586 "https://trace.ncbi.nlm.nih.gov/Traces/sra/sra.cgi?view=software")
6587 (synopsis "Tools and libraries for reading and writing sequencing data")
6589 "The SRA Toolkit from NCBI is a collection of tools and libraries for
6590 reading of sequencing files from the Sequence Read Archive (SRA) database and
6591 writing files into the .sra format.")
6592 (license license:public-domain)))
6594 (define-public seqan
6600 (uri (string-append "https://github.com/seqan/seqan/releases/"
6601 "download/seqan-v" version
6602 "/seqan-library-" version ".tar.xz"))
6605 "19a1rlxx03qy1i1iriicly68w64yjxbv24g9gdywnfmq998v35yx"))))
6606 ;; The documentation is 7.8MB and the includes are 3.6MB heavy, so it
6607 ;; makes sense to split the outputs.
6608 (outputs '("out" "doc"))
6609 (build-system trivial-build-system)
6611 `(#:modules ((guix build utils))
6614 (use-modules (guix build utils))
6615 (let ((tar (assoc-ref %build-inputs "tar"))
6616 (xz (assoc-ref %build-inputs "xz"))
6617 (out (assoc-ref %outputs "out"))
6618 (doc (assoc-ref %outputs "doc")))
6619 (setenv "PATH" (string-append tar "/bin:" xz "/bin"))
6620 (invoke "tar" "xvf" (assoc-ref %build-inputs "source"))
6621 (chdir (string-append "seqan-library-" ,version))
6622 (copy-recursively "include" (string-append out "/include"))
6623 (copy-recursively "share" (string-append doc "/share"))
6626 `(("source" ,source)
6629 (home-page "https://www.seqan.de")
6630 (synopsis "Library for nucleotide sequence analysis")
6632 "SeqAn is a C++ library of efficient algorithms and data structures for
6633 the analysis of sequences with the focus on biological data. It contains
6634 algorithms and data structures for string representation and their
6635 manipulation, online and indexed string search, efficient I/O of
6636 bioinformatics file formats, sequence alignment, and more.")
6637 (license license:bsd-3)))
6639 (define-public seqan-1
6640 (package (inherit seqan)
6645 (uri (string-append "https://packages.seqan.de/seqan-library/"
6646 "seqan-library-" version ".tar.bz2"))
6649 "05s3wrrwn50f81aklfm65i4a749zag1vr8z03k21xm0pdxy47yvp"))))
6650 ;; The documentation is 7.8MB and the includes are 3.6MB heavy, so it
6651 ;; makes sense to split the outputs.
6652 (outputs '("out" "doc"))
6653 (build-system trivial-build-system)
6655 `(#:modules ((guix build utils))
6658 (use-modules (guix build utils))
6659 (let ((tar (assoc-ref %build-inputs "tar"))
6660 (bzip (assoc-ref %build-inputs "bzip2"))
6661 (out (assoc-ref %outputs "out"))
6662 (doc (assoc-ref %outputs "doc")))
6663 (setenv "PATH" (string-append tar "/bin:" bzip "/bin"))
6664 (invoke "tar" "xvf" (assoc-ref %build-inputs "source"))
6665 (chdir (string-append "seqan-library-" ,version))
6666 (copy-recursively "include" (string-append out "/include"))
6667 (copy-recursively "share" (string-append doc "/share"))
6670 `(("source" ,source)
6672 ("bzip2" ,bzip2)))))
6674 (define-public seqmagick
6681 (uri (pypi-uri "seqmagick" version))
6684 "0pf98da7i59q47gwrbx0wjk6xlvbybiwphw80w7h4ydjj0579a2b"))))
6685 (build-system python-build-system)
6687 `(("python-biopython" ,python-biopython)))
6689 `(("python-nose" ,python-nose)))
6690 (home-page "https://github.com/fhcrc/seqmagick")
6691 (synopsis "Tools for converting and modifying sequence files")
6693 "Bioinformaticians often have to convert sequence files between formats
6694 and do little manipulations on them, and it's not worth writing scripts for
6695 that. Seqmagick is a utility to expose the file format conversion in
6696 BioPython in a convenient way. Instead of having a big mess of scripts, there
6697 is one that takes arguments.")
6698 (license license:gpl3)))
6700 (define-public seqtk
6707 (url "https://github.com/lh3/seqtk")
6708 (commit (string-append "v" version))))
6709 (file-name (git-file-name name version))
6712 "1bfzlqa84b5s1qi22blmmw2s8xdyp9h9ydcq22pfjhh5gab3yz6l"))))
6713 (build-system gnu-build-system)
6716 (modify-phases %standard-phases
6719 ;; There are no tests, so we just run a sanity check.
6720 (lambda _ (invoke "./seqtk" "seq") #t))
6722 (lambda* (#:key outputs #:allow-other-keys)
6723 (let ((bin (string-append (assoc-ref outputs "out") "/bin/")))
6724 (install-file "seqtk" bin)
6728 (home-page "https://github.com/lh3/seqtk")
6729 (synopsis "Toolkit for processing biological sequences in FASTA/Q format")
6731 "Seqtk is a fast and lightweight tool for processing sequences in the
6732 FASTA or FASTQ format. It parses both FASTA and FASTQ files which can be
6733 optionally compressed by gzip.")
6734 (license license:expat)))
6736 (define-public snap-aligner
6738 (name "snap-aligner")
6739 (version "1.0beta.18")
6743 (url "https://github.com/amplab/snap")
6744 (commit (string-append "v" version))))
6745 (file-name (git-file-name name version))
6748 "01w3qq4wm07z73vky0cfwlmrbf50n3w722cxrlzxfi99mnb808d8"))))
6749 (build-system gnu-build-system)
6752 (modify-phases %standard-phases
6754 (replace 'check (lambda _ (invoke "./unit_tests") #t))
6756 (lambda* (#:key outputs #:allow-other-keys)
6757 (let* ((out (assoc-ref outputs "out"))
6758 (bin (string-append out "/bin")))
6759 (install-file "snap-aligner" bin)
6760 (install-file "SNAPCommand" bin)
6764 (home-page "http://snap.cs.berkeley.edu/")
6765 (synopsis "Short read DNA sequence aligner")
6767 "SNAP is a fast and accurate aligner for short DNA reads. It is
6768 optimized for modern read lengths of 100 bases or higher, and takes advantage
6769 of these reads to align data quickly through a hash-based indexing scheme.")
6770 ;; 32-bit systems are not supported by the unpatched code.
6771 ;; Following the bug reports https://github.com/amplab/snap/issues/68 and
6772 ;; https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=812378 we see that
6773 ;; systems without a lot of memory cannot make good use of this program.
6774 (supported-systems '("x86_64-linux"))
6775 (license license:asl2.0)))
6777 (define-public sortmerna
6785 (url "https://github.com/biocore/sortmerna")
6787 (file-name (git-file-name name version))
6790 "0j3mbz4n25738yijmjbr5r4fyvkgm8v5vn3sshyfvmyqf5q9byqf"))))
6791 (build-system gnu-build-system)
6792 (outputs '("out" ;for binaries
6793 "db")) ;for sequence databases
6796 (modify-phases %standard-phases
6798 (lambda* (#:key outputs #:allow-other-keys)
6799 (let* ((out (assoc-ref outputs "out"))
6800 (bin (string-append out "/bin"))
6801 (db (assoc-ref outputs "db"))
6803 (string-append db "/share/sortmerna/rRNA_databases")))
6804 (install-file "sortmerna" bin)
6805 (install-file "indexdb_rna" bin)
6806 (for-each (lambda (file)
6807 (install-file file share))
6808 (find-files "rRNA_databases" ".*fasta"))
6812 (home-page "https://bioinfo.lifl.fr/RNA/sortmerna/")
6813 (synopsis "Biological sequence analysis tool for NGS reads")
6815 "SortMeRNA is a biological sequence analysis tool for filtering, mapping
6816 and @acronym{OTU, operational taxonomic unit} picking of @acronym{NGS, next
6817 generation sequencing} reads. The core algorithm is based on approximate seeds
6818 and allows for fast and sensitive analyses of nucleotide sequences. The main
6819 application of SortMeRNA is filtering rRNA from metatranscriptomic data.")
6820 ;; The source includes x86 specific code
6821 (supported-systems '("x86_64-linux" "i686-linux"))
6822 (license license:lgpl3)))
6831 (url "https://github.com/alexdobin/STAR")
6833 (file-name (git-file-name name version))
6836 "0zc5biymja9zml9yizcj1h68fq9c6sxfcav8a0lbgvgsm44rvans"))
6837 (modules '((guix build utils)))
6840 (substitute* "source/Makefile"
6842 ;; Remove pre-built binaries and bundled htslib sources.
6843 (delete-file-recursively "bin/MacOSX_x86_64")
6844 (delete-file-recursively "bin/Linux_x86_64")
6845 (delete-file-recursively "bin/Linux_x86_64_static")
6846 (delete-file-recursively "source/htslib")
6848 (build-system gnu-build-system)
6850 '(#:tests? #f ;no check target
6851 #:make-flags '("STAR")
6853 (modify-phases %standard-phases
6854 (add-after 'unpack 'enter-source-dir
6855 (lambda _ (chdir "source") #t))
6856 (add-after 'enter-source-dir 'make-reproducible
6858 (substitute* "Makefile"
6859 (("(COMPILATION_TIME_PLACE=\")(.*)(\")" _ pre mid post)
6860 (string-append pre "Built with Guix" post)))
6862 ;; See https://github.com/alexdobin/STAR/pull/562
6863 (add-after 'enter-source-dir 'add-missing-header
6865 (substitute* "SoloReadFeature_inputRecords.cpp"
6866 (("#include \"binarySearch2.h\"" h)
6867 (string-append h "\n#include <math.h>")))
6869 (add-after 'enter-source-dir 'do-not-use-bundled-htslib
6871 (substitute* "Makefile"
6872 (("(Depend.list: \\$\\(SOURCES\\) parametersDefault\\.xxd) htslib"
6874 (substitute* '("BAMfunctions.cpp"
6879 "bamRemoveDuplicates.cpp")
6880 (("#include \"htslib/([^\"]+\\.h)\"" _ header)
6881 (string-append "#include <" header ">")))
6882 (substitute* "IncludeDefine.h"
6883 (("\"htslib/(htslib/[^\"]+.h)\"" _ header)
6884 (string-append "<" header ">")))
6887 (lambda* (#:key outputs #:allow-other-keys)
6888 (let ((bin (string-append (assoc-ref outputs "out") "/bin/")))
6889 (install-file "STAR" bin))
6891 (delete 'configure))))
6895 `(("htslib" ,htslib)
6897 (home-page "https://github.com/alexdobin/STAR")
6898 (synopsis "Universal RNA-seq aligner")
6900 "The Spliced Transcripts Alignment to a Reference (STAR) software is
6901 based on a previously undescribed RNA-seq alignment algorithm that uses
6902 sequential maximum mappable seed search in uncompressed suffix arrays followed
6903 by seed clustering and stitching procedure. In addition to unbiased de novo
6904 detection of canonical junctions, STAR can discover non-canonical splices and
6905 chimeric (fusion) transcripts, and is also capable of mapping full-length RNA
6907 ;; Only 64-bit systems are supported according to the README.
6908 (supported-systems '("x86_64-linux" "mips64el-linux"))
6909 ;; STAR is licensed under GPLv3 or later; htslib is MIT-licensed.
6910 (license license:gpl3+)))
6912 (define-public star-for-pigx
6920 (url "https://github.com/alexdobin/STAR")
6922 (file-name (git-file-name name version))
6925 "1hgiqw5qhs0pc1xazzihcfd92na02xyq2kb469z04y1v51kpvvjq"))
6926 (modules '((guix build utils)))
6929 (substitute* "source/Makefile"
6931 ;; Remove pre-built binaries and bundled htslib sources.
6932 (delete-file-recursively "bin/MacOSX_x86_64")
6933 (delete-file-recursively "bin/Linux_x86_64")
6934 (delete-file-recursively "bin/Linux_x86_64_static")
6935 (delete-file-recursively "source/htslib")
6938 (define-public starlong
6939 (package (inherit star)
6942 (substitute-keyword-arguments (package-arguments star)
6943 ((#:make-flags flags)
6946 `(modify-phases ,phases
6947 ;; Allow extra long sequence reads.
6948 (add-after 'unpack 'make-extra-long
6950 (substitute* "source/IncludeDefine.h"
6951 (("(#define DEF_readNameLengthMax ).*" _ match)
6952 (string-append match "900000\n")))
6955 (lambda* (#:key outputs #:allow-other-keys)
6956 (let ((bin (string-append (assoc-ref outputs "out") "/bin/")))
6957 (install-file "STARlong" bin))
6960 (define-public subread
6966 (uri (string-append "mirror://sourceforge/subread/subread-"
6967 version "/subread-" version "-source.tar.gz"))
6970 "0ah0n4jx6ksk2m2j7xk385x2qzmk1y4rfc6a4mfrdqrlq721w99i"))))
6971 (build-system gnu-build-system)
6973 `(#:tests? #f ;no "check" target
6974 ;; The CC and CCFLAGS variables are set to contain a lot of x86_64
6975 ;; optimizations by default, so we override these flags such that x86_64
6976 ;; flags are only added when the build target is an x86_64 system.
6978 (list (let ((system ,(or (%current-target-system)
6980 (flags '("-ggdb" "-fomit-frame-pointer"
6981 "-ffast-math" "-funroll-loops"
6982 "-fmessage-length=0"
6983 "-O9" "-Wall" "-DMAKE_FOR_EXON"
6985 "-DSUBREAD_VERSION=\\\"${SUBREAD_VERSION}\\\""))
6986 (flags64 '("-mmmx" "-msse" "-msse2" "-msse3")))
6987 (if (string-prefix? "x86_64" system)
6988 (string-append "CCFLAGS=" (string-join (append flags flags64)))
6989 (string-append "CCFLAGS=" (string-join flags))))
6990 "-f" "Makefile.Linux"
6991 "CC=gcc ${CCFLAGS}")
6993 (modify-phases %standard-phases
6994 (add-after 'unpack 'enter-dir
6995 (lambda _ (chdir "src") #t))
6997 (lambda* (#:key outputs #:allow-other-keys)
6998 (let ((bin (string-append (assoc-ref outputs "out") "/bin/")))
7000 (copy-recursively "../bin" bin))
7002 ;; no "configure" script
7003 (delete 'configure))))
7004 (inputs `(("zlib" ,zlib)))
7005 (home-page "http://bioinf.wehi.edu.au/subread-package/")
7006 (synopsis "Tool kit for processing next-gen sequencing data")
7008 "The subread package contains the following tools: subread aligner, a
7009 general-purpose read aligner; subjunc aligner: detecting exon-exon junctions
7010 and mapping RNA-seq reads; featureCounts: counting mapped reads for genomic
7011 features; exactSNP: a SNP caller that discovers SNPs by testing signals
7012 against local background noises.")
7013 (license license:gpl3+)))
7015 (define-public stringtie
7021 (uri (string-append "http://ccb.jhu.edu/software/stringtie/dl/"
7022 "stringtie-" version ".tar.gz"))
7025 "1cqllsc1maq4kh92isi8yadgzbmnf042hlnalpk3y59aph1z3bfz"))
7026 (modules '((guix build utils)))
7029 (delete-file-recursively "samtools-0.1.18")
7031 (build-system gnu-build-system)
7033 `(#:tests? #f ;no test suite
7035 (modify-phases %standard-phases
7036 ;; no configure script
7038 (add-before 'build 'use-system-samtools
7040 (substitute* "Makefile"
7041 (("stringtie: \\$\\{BAM\\}/libbam\\.a")
7043 (substitute* '("gclib/GBam.h"
7045 (("#include \"(bam|sam|kstring).h\"" _ header)
7046 (string-append "#include <samtools/" header ".h>")))
7048 (add-after 'unpack 'remove-duplicate-typedef
7050 ;; This typedef conflicts with the typedef in
7051 ;; glibc-2.25/include/bits/types.h
7052 (substitute* "gclib/GThreads.h"
7053 (("typedef long long __intmax_t;") ""))
7056 (lambda* (#:key outputs #:allow-other-keys)
7057 (let ((bin (string-append (assoc-ref outputs "out") "/bin/")))
7058 (install-file "stringtie" bin)
7061 `(("samtools" ,samtools-0.1)
7063 (home-page "http://ccb.jhu.edu/software/stringtie/")
7064 (synopsis "Transcript assembly and quantification for RNA-Seq data")
7066 "StringTie is a fast and efficient assembler of RNA-Seq sequence
7067 alignments into potential transcripts. It uses a novel network flow algorithm
7068 as well as an optional de novo assembly step to assemble and quantitate
7069 full-length transcripts representing multiple splice variants for each gene
7070 locus. Its input can include not only the alignments of raw reads used by
7071 other transcript assemblers, but also alignments of longer sequences that have
7072 been assembled from those reads. To identify differentially expressed genes
7073 between experiments, StringTie's output can be processed either by the
7074 Cuffdiff or Ballgown programs.")
7075 (license license:artistic2.0)))
7077 (define-public taxtastic
7082 ;; The Pypi version does not include tests.
7085 (url "https://github.com/fhcrc/taxtastic")
7086 (commit (string-append "v" version))))
7087 (file-name (git-file-name name version))
7090 "1sv8mkg64jn7zdwf1jj71c16686yrwxk0apb1l8sjszy9p166g0p"))))
7091 (build-system python-build-system)
7094 (modify-phases %standard-phases
7095 (add-after 'unpack 'prepare-directory
7097 ;; The git checkout must be writable for tests.
7098 (for-each make-file-writable (find-files "."))
7099 ;; This test fails, but the error is not caught by the test
7100 ;; framework, so the tests fail...
7101 (substitute* "tests/test_taxit.py"
7102 (("self.cmd_fails\\(''\\)")
7103 "self.cmd_fails('nothing')"))
7104 ;; This version file is expected to be created with git describe.
7105 (mkdir-p "taxtastic/data")
7106 (with-output-to-file "taxtastic/data/ver"
7107 (lambda () (display ,version)))
7109 (add-after 'unpack 'python37-compatibility
7111 (substitute* "taxtastic/utils.py"
7112 (("import csv") "import csv, errno")
7113 (("os.errno") "errno"))
7116 ;; Note, this fails to run with "-v" as it tries to write to a
7117 ;; closed output stream.
7118 (lambda _ (invoke "python" "-m" "unittest") #t)))))
7120 `(("python-sqlalchemy" ,python-sqlalchemy)
7121 ("python-decorator" ,python-decorator)
7122 ("python-biopython" ,python-biopython)
7123 ("python-pandas" ,python-pandas)
7124 ("python-psycopg2" ,python-psycopg2)
7125 ("python-fastalite" ,python-fastalite)
7126 ("python-pyyaml" ,python-pyyaml)
7127 ("python-six" ,python-six)
7128 ("python-jinja2" ,python-jinja2)
7129 ("python-dendropy" ,python-dendropy)))
7130 (home-page "https://github.com/fhcrc/taxtastic")
7131 (synopsis "Tools for taxonomic naming and annotation")
7133 "Taxtastic is software written in python used to build and maintain
7134 reference packages i.e. collections of reference trees, reference alignments,
7135 profiles, and associated taxonomic information.")
7136 (license license:gpl3+)))
7138 (define-public vcftools
7145 "https://github.com/vcftools/vcftools/releases/download/v"
7146 version "/vcftools-" version ".tar.gz"))
7149 "1qqlx7flfv7axrjwkaz6njkscsl1d0jw98ns8d8bh1n1hd1pgz6v"))))
7150 (build-system gnu-build-system)
7152 `(#:tests? #f ; no "check" target
7154 "CFLAGS=-O2" ; override "-m64" flag
7155 (string-append "PREFIX=" (assoc-ref %outputs "out"))
7156 (string-append "MANDIR=" (assoc-ref %outputs "out")
7157 "/share/man/man1"))))
7159 `(("pkg-config" ,pkg-config)))
7163 (home-page "https://vcftools.github.io/")
7164 (synopsis "Tools for working with VCF files")
7166 "VCFtools is a program package designed for working with VCF files, such
7167 as those generated by the 1000 Genomes Project. The aim of VCFtools is to
7168 provide easily accessible methods for working with complex genetic variation
7169 data in the form of VCF files.")
7170 ;; The license is declared as LGPLv3 in the README and
7171 ;; at https://vcftools.github.io/license.html
7172 (license license:lgpl3)))
7174 (define-public infernal
7180 (uri (string-append "http://eddylab.org/software/infernal/"
7181 "infernal-" version ".tar.gz"))
7184 "1z4mgwqg1j4n5ika08ai8mg9yjyjhf4821jp83v2bgwzxrykqjgr"))))
7185 (build-system gnu-build-system)
7188 ("python" ,python))) ; for tests
7189 (home-page "http://eddylab.org/infernal/")
7190 (synopsis "Inference of RNA alignments")
7191 (description "Infernal (\"INFERence of RNA ALignment\") is a tool for
7192 searching DNA sequence databases for RNA structure and sequence similarities.
7193 It is an implementation of a special case of profile stochastic context-free
7194 grammars called @dfn{covariance models} (CMs). A CM is like a sequence
7195 profile, but it scores a combination of sequence consensus and RNA secondary
7196 structure consensus, so in many cases, it is more capable of identifying RNA
7197 homologs that conserve their secondary structure more than their primary
7199 ;; Infernal 1.1.3 requires VMX or SSE capability for parallel instructions.
7200 (supported-systems '("i686-linux" "x86_64-linux"))
7201 (license license:bsd-3)))
7203 (define-public r-snapatac
7211 (url "https://github.com/r3fang/SnapATAC")
7212 (commit (string-append "v" version))))
7213 (file-name (git-file-name name version))
7215 (base32 "037jzlbl436fi7lkpq7d83i2vd1crnrik3vac2x6xj75dbikb2av"))))
7216 (properties `((upstream-name . "SnapATAC")))
7217 (build-system r-build-system)
7219 `(("r-bigmemory" ,r-bigmemory)
7220 ("r-doparallel" ,r-doparallel)
7221 ("r-dosnow" ,r-dosnow)
7222 ("r-edger" ,r-edger)
7223 ("r-foreach" ,r-foreach)
7224 ("r-genomicranges" ,r-genomicranges)
7225 ("r-igraph" ,r-igraph)
7226 ("r-iranges" ,r-iranges)
7227 ("r-irlba" ,r-irlba)
7228 ("r-matrix" ,r-matrix)
7230 ("r-plot3d" ,r-plot3d)
7232 ("r-raster" ,r-raster)
7233 ("r-rcolorbrewer" ,r-rcolorbrewer)
7234 ("r-rhdf5" ,r-rhdf5)
7235 ("r-rtsne" ,r-rtsne)
7236 ("r-scales" ,r-scales)
7237 ("r-viridis" ,r-viridis)))
7238 (home-page "https://github.com/r3fang/SnapATAC")
7239 (synopsis "Single nucleus analysis package for ATAC-Seq")
7241 "This package provides a fast and accurate analysis toolkit for single
7242 cell ATAC-seq (Assay for transposase-accessible chromatin using sequencing).
7243 Single cell ATAC-seq can resolve the heterogeneity of a complex tissue and
7244 reveal cell-type specific regulatory landscapes. However, the exceeding data
7245 sparsity has posed unique challenges for the data analysis. This package
7246 @code{r-snapatac} is an end-to-end bioinformatics pipeline for analyzing large-
7247 scale single cell ATAC-seq data which includes quality control, normalization,
7248 clustering analysis, differential analysis, motif inference and exploration of
7249 single cell ATAC-seq sequencing data.")
7250 (license license:gpl3)))
7252 (define-public r-archr
7253 (let ((commit "46b519ffb6f73edf132497ac31650d19ef055dc1")
7257 (version (git-version "1.0.0" revision commit))
7262 (url "https://github.com/GreenleafLab/ArchR")
7264 (file-name (git-file-name name version))
7267 "1zj3sdfhgn2q2256fmz61a92vw1wylyck632d7842d6knd0v92v8"))))
7268 (properties `((upstream-name . "ArchR")))
7269 (build-system r-build-system)
7271 `(("r-biocgenerics" ,r-biocgenerics)
7272 ("r-biostrings" ,r-biostrings)
7273 ("r-chromvar" ,r-chromvar)
7274 ("r-complexheatmap" ,r-complexheatmap)
7275 ("r-data-table" ,r-data-table)
7276 ("r-genomicranges" ,r-genomicranges)
7277 ("r-ggplot2" ,r-ggplot2)
7278 ("r-ggrepel" ,r-ggrepel)
7279 ("r-gridextra" ,r-gridextra)
7280 ("r-gtable" ,r-gtable)
7281 ("r-gtools" ,r-gtools)
7282 ("r-magrittr" ,r-magrittr)
7283 ("r-matrix" ,r-matrix)
7284 ("r-matrixstats" ,r-matrixstats)
7285 ("r-motifmatchr" ,r-motifmatchr)
7286 ("r-nabor" ,r-nabor)
7289 ("r-rhdf5" ,r-rhdf5)
7290 ("r-rsamtools" ,r-rsamtools)
7291 ("r-s4vectors" ,r-s4vectors)
7292 ("r-stringr" ,r-stringr)
7293 ("r-summarizedexperiment" ,r-summarizedexperiment)
7294 ("r-uwot" ,r-uwot)))
7295 (home-page "https://github.com/GreenleafLab/ArchR")
7296 (synopsis "Analyze single-cell regulatory chromatin in R")
7298 "This package is designed to streamline scATAC analyses in R.")
7299 (license license:gpl2+))))
7301 (define-public r-scde
7308 (url "https://github.com/hms-dbmi/scde")
7310 (file-name (git-file-name name version))
7313 "10na2gyka24mszdxf92wz9h2c13hdf1ww30c68gfsw53lvvhhhxb"))))
7314 (build-system r-build-system)
7316 `(("r-rcpp" ,r-rcpp)
7317 ("r-rcpparmadillo" ,r-rcpparmadillo)
7320 ("r-rjson" ,r-rjson)
7321 ("r-cairo" ,r-cairo)
7322 ("r-rcolorbrewer" ,r-rcolorbrewer)
7323 ("r-edger" ,r-edger)
7324 ("r-quantreg" ,r-quantreg)
7326 ("r-rmtstat" ,r-rmtstat)
7327 ("r-extremes" ,r-extremes)
7328 ("r-pcamethods" ,r-pcamethods)
7329 ("r-biocparallel" ,r-biocparallel)
7330 ("r-flexmix" ,r-flexmix)))
7331 (home-page "https://hms-dbmi.github.io/scde/")
7332 (synopsis "R package for analyzing single-cell RNA-seq data")
7333 (description "The SCDE package implements a set of statistical methods for
7334 analyzing single-cell RNA-seq data. SCDE fits individual error models for
7335 single-cell RNA-seq measurements. These models can then be used for
7336 assessment of differential expression between groups of cells, as well as
7337 other types of analysis. The SCDE package also contains the pagoda framework
7338 which applies pathway and gene set overdispersion analysis to identify aspects
7339 of transcriptional heterogeneity among single cells.")
7340 ;; See https://github.com/hms-dbmi/scde/issues/38
7341 (license license:gpl2)))
7343 (define-public r-centipede
7345 (name "r-centipede")
7349 (uri (string-append "http://download.r-forge.r-project.org/"
7350 "src/contrib/CENTIPEDE_" version ".tar.gz"))
7353 "1hsx6qgwr0i67fhy9257zj7s0ppncph2hjgbia5nn6nfmj0ax6l9"))))
7354 (build-system r-build-system)
7355 (home-page "http://centipede.uchicago.edu/")
7356 (synopsis "Predict transcription factor binding sites")
7358 "CENTIPEDE applies a hierarchical Bayesian mixture model to infer regions
7359 of the genome that are bound by particular transcription factors. It starts
7360 by identifying a set of candidate binding sites, and then aims to classify the
7361 sites according to whether each site is bound or not bound by a transcription
7362 factor. CENTIPEDE is an unsupervised learning algorithm that discriminates
7363 between two different types of motif instances using as much relevant
7364 information as possible.")
7365 (license (list license:gpl2+ license:gpl3+))))
7367 (define-public r-demultiplex
7368 (let ((commit "6e2a1422c8e6f418cfb271997eebc91f9195f299")
7371 (name "r-demultiplex")
7372 (version (git-version "1.0.2" revision commit))
7377 (url "https://github.com/chris-mcginnis-ucsf/MULTI-seq")
7379 (file-name (git-file-name name version))
7382 "01kv88wp8vdaq07sjk0d3d1cb553mq1xqg0war81pgmg63bgi38w"))))
7383 (properties `((upstream-name . "deMULTIplex")))
7384 (build-system r-build-system)
7386 `(("r-kernsmooth" ,r-kernsmooth)
7387 ("r-reshape2" ,r-reshape2)
7388 ("r-rtsne" ,r-rtsne)
7389 ("r-shortread" ,r-shortread)
7390 ("r-stringdist" ,r-stringdist)))
7391 (home-page "https://github.com/chris-mcginnis-ucsf/MULTI-seq")
7392 (synopsis "MULTI-seq pre-processing and classification tools")
7394 "deMULTIplex is an R package for analyzing single-cell RNA sequencing
7395 data generated with the MULTI-seq sample multiplexing method. The package
7396 includes software to
7399 @item Convert raw MULTI-seq sample barcode library FASTQs into a sample
7400 barcode UMI count matrix, and
7401 @item Classify cell barcodes into sample barcode groups.
7404 (license license:cc0))))
7406 (define-public vsearch
7414 (url "https://github.com/torognes/vsearch")
7415 (commit (string-append "v" version))))
7416 (file-name (git-file-name name version))
7419 "0vhrpjfdf75ba04b24xknp41790cvcgwl0vgpy7qbzj5xh2521ss"))
7420 (patches (search-patches "vsearch-unbundle-cityhash.patch"))
7423 ;; Remove bundled cityhash sources. The vsearch source is adjusted
7424 ;; for this in the patch.
7425 (delete-file "src/city.h")
7426 (delete-file "src/citycrc.h")
7427 (delete-file "src/city.cc")
7429 (build-system gnu-build-system)
7433 ("cityhash" ,cityhash)))
7435 `(("autoconf" ,autoconf)
7436 ("automake" ,automake)))
7437 (synopsis "Sequence search tools for metagenomics")
7439 "VSEARCH supports DNA sequence searching, clustering, chimera detection,
7440 dereplication, pairwise alignment, shuffling, subsampling, sorting and
7441 masking. The tool takes advantage of parallelism in the form of SIMD
7442 vectorization as well as multiple threads to perform accurate alignments at
7443 high speed. VSEARCH uses an optimal global aligner (full dynamic programming
7444 Needleman-Wunsch).")
7445 (home-page "https://github.com/torognes/vsearch")
7446 ;; vsearch uses non-portable SSE intrinsics so building fails on other
7448 (supported-systems '("x86_64-linux"))
7449 ;; Dual licensed; also includes public domain source.
7450 (license (list license:gpl3 license:bsd-2))))
7452 (define-public pardre
7455 ;; The source of 1.1.5 changed in place, so we append "-1" to the version.
7460 (uri (string-append "mirror://sourceforge/pardre/ParDRe-rel"
7464 "17j73nc0viq4f6qj50nrndsrif5d6b71q8fl87m54psiv0ilns2b"))))
7465 (build-system gnu-build-system)
7467 `(#:tests? #f ; no tests included
7469 (modify-phases %standard-phases
7472 (lambda* (#:key outputs #:allow-other-keys)
7473 (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
7474 (install-file "ParDRe" bin)
7477 `(("openmpi" ,openmpi)
7479 (synopsis "Parallel tool to remove duplicate DNA reads")
7481 "ParDRe is a parallel tool to remove duplicate genetic sequence reads.
7482 Duplicate reads can be seen as identical or nearly identical sequences with
7483 some mismatches. This tool lets users avoid the analysis of unnecessary
7484 reads, reducing the time of subsequent procedures with the
7485 dataset (e.g. assemblies, mappings, etc.). The tool is implemented with MPI
7486 in order to exploit the parallel capabilities of multicore clusters. It is
7487 faster than multithreaded counterparts (end of 2015) for the same number of
7488 cores and, thanks to the message-passing technology, it can be executed on
7490 (home-page "https://sourceforge.net/projects/pardre/")
7491 (license license:gpl3+)))
7493 (define-public ngshmmalign
7495 (name "ngshmmalign")
7500 (uri (string-append "https://github.com/cbg-ethz/ngshmmalign/"
7501 "releases/download/" version
7502 "/ngshmmalign-" version ".tar.bz2"))
7505 "0jryvlssi2r2ii1dxnx39yk6bh4yqgq010fnxrgfgbaj3ykijlzv"))))
7506 (build-system cmake-build-system)
7507 (arguments '(#:tests? #false)) ; there are none
7509 `(("boost" ,boost)))
7510 (home-page "https://github.com/cbg-ethz/ngshmmalign/")
7511 (synopsis "Profile HMM aligner for NGS reads")
7513 "ngshmmalign is a profile HMM aligner for NGS reads designed particularly
7514 for small genomes (such as those of RNA viruses like HIV-1 and HCV) that
7515 experience substantial biological insertions and deletions.")
7516 (license license:gpl2+)))
7518 (define-public prinseq
7525 (uri (string-append "mirror://sourceforge/prinseq/standalone/"
7526 "prinseq-lite-" version ".tar.gz"))
7529 "0vxmzvmm67whxrqdaaamwgjk7cf0fzfs5s673jgg00kz7g70splv"))))
7530 (build-system gnu-build-system)
7532 `(#:tests? #false ; no check target
7534 (modify-phases %standard-phases
7538 (lambda* (#:key outputs #:allow-other-keys)
7539 (let* ((out (assoc-ref outputs "out"))
7540 (bin (string-append out "/bin")))
7541 (for-each (lambda (file)
7543 (install-file file bin)
7544 (wrap-script (string-append bin "/" (basename file))
7545 `("PERL5LIB" ":" prefix
7546 (,(getenv "PERL5LIB")))))
7547 (find-files "." "prinseq.*.pl"))))))))
7549 `(("guile" ,guile-3.0) ; for wrapper scripts
7551 ("perl-cairo" ,perl-cairo)
7552 ("perl-data-dumper" ,perl-data-dumper)
7553 ("perl-digest-md5" ,perl-digest-md5)
7554 ("perl-getopt-long" ,perl-getopt-long)
7555 ("perl-json" ,perl-json)
7556 ("perl-statistics-pca" ,perl-statistics-pca)))
7557 (home-page "http://prinseq.sourceforge.net/")
7558 (synopsis "Preprocess sequence data in FASTA or FASTQ formats")
7560 "PRINSEQ is a bioinformatics tool to help you preprocess your genomic or
7561 metagenomic sequence data in FASTA or FASTQ formats. The tool is written in
7562 Perl and can be helpful if you want to filter, reformat, or trim your sequence
7563 data. It also generates basic statistics for your sequences.")
7564 (license license:gpl3+)))
7566 (define-public ruby-bio-kseq
7568 (name "ruby-bio-kseq")
7573 (uri (rubygems-uri "bio-kseq" version))
7576 "1xyaha46khb5jc6wzkbf7040jagac49jbimn0vcrzid0j8jdikrz"))))
7577 (build-system ruby-build-system)
7579 `(#:test-target "spec"))
7581 `(("bundler" ,bundler)
7582 ("ruby-rspec" ,ruby-rspec)
7583 ("ruby-rake-compiler" ,ruby-rake-compiler)))
7586 (synopsis "Ruby bindings for the kseq.h FASTA/Q parser")
7588 "@code{Bio::Kseq} provides ruby bindings to the @code{kseq.h} FASTA and
7589 FASTQ parsing code. It provides a fast iterator over sequences and their
7591 (home-page "https://github.com/gusevfe/bio-kseq")
7592 (license license:expat)))
7594 (define-public bio-locus
7601 (uri (rubygems-uri "bio-locus" version))
7604 "02vmrxyimkj9sahsp4zhfhnmbvz6dbbqz1y01vglf8cbwvkajfl0"))))
7605 (build-system ruby-build-system)
7607 `(("ruby-rspec" ,ruby-rspec)))
7608 (synopsis "Tool for fast querying of genome locations")
7610 "Bio-locus is a tabix-like tool for fast querying of genome
7611 locations. Many file formats in bioinformatics contain records that
7612 start with a chromosome name and a position for a SNP, or a start-end
7613 position for indels. Bio-locus allows users to store this chr+pos or
7614 chr+pos+alt information in a database.")
7615 (home-page "https://github.com/pjotrp/bio-locus")
7616 (license license:expat)))
7618 (define-public bio-blastxmlparser
7620 (name "bio-blastxmlparser")
7624 (uri (rubygems-uri "bio-blastxmlparser" version))
7627 "1wf4qygcmdjgcqm6flmvsagfr1gs9lf63mj32qv3z1f481zc5692"))))
7628 (build-system ruby-build-system)
7630 `(("ruby-bio-logger" ,ruby-bio-logger)
7631 ("ruby-nokogiri" ,ruby-nokogiri)))
7633 `(("ruby-rspec" ,ruby-rspec)))
7634 (synopsis "Fast big data BLAST XML parser and library")
7636 "Very fast parallel big-data BLAST XML file parser which can be used as
7637 command line utility. Use blastxmlparser to: Parse BLAST XML; filter output;
7638 generate FASTA, JSON, YAML, RDF, JSON-LD, HTML, CSV, tabular output etc.")
7639 (home-page "https://github.com/pjotrp/blastxmlparser")
7640 (license license:expat)))
7642 (define-public bioruby
7649 (uri (rubygems-uri "bio" version))
7652 "1d56amdsjv1mag7m6gv2w0xij8hqx1v5xbdjsix8sp3yp36m7938"))))
7653 (build-system ruby-build-system)
7655 `(("ruby-libxml" ,ruby-libxml)))
7657 `(("which" ,which))) ; required for test phase
7660 (modify-phases %standard-phases
7661 (add-before 'build 'patch-test-command
7663 (substitute* '("test/functional/bio/test_command.rb")
7664 (("/bin/sh") (which "sh")))
7665 (substitute* '("test/functional/bio/test_command.rb")
7666 (("/bin/ls") (which "ls")))
7667 (substitute* '("test/functional/bio/test_command.rb")
7668 (("which") (which "which")))
7669 (substitute* '("test/functional/bio/test_command.rb",
7670 "test/data/command/echoarg2.sh")
7671 (("/bin/echo") (which "echo")))
7673 (synopsis "Ruby library, shell and utilities for bioinformatics")
7674 (description "BioRuby comes with a comprehensive set of Ruby development
7675 tools and libraries for bioinformatics and molecular biology. BioRuby has
7676 components for sequence analysis, pathway analysis, protein modelling and
7677 phylogenetic analysis; it supports many widely used data formats and provides
7678 easy access to databases, external programs and public web services, including
7679 BLAST, KEGG, GenBank, MEDLINE and GO.")
7680 (home-page "http://bioruby.org/")
7681 ;; Code is released under Ruby license, except for setup
7682 ;; (LGPLv2.1+) and scripts in samples (which have GPL2 and GPL2+)
7683 (license (list license:ruby license:lgpl2.1+ license:gpl2+ ))))
7685 (define-public bio-vcf
7692 (uri (rubygems-uri "bio-vcf" version))
7695 "1glw5pn9s8z13spxk6yyfqaz80n9lga67f33w35nkpq9dwi2vg6g"))))
7696 (build-system ruby-build-system)
7698 `(("ruby-cucumber" ,ruby-cucumber)))
7699 (synopsis "Smart VCF parser DSL")
7701 "Bio-vcf provides a @acronym{DSL, domain specific language} for processing
7702 the VCF format. Record named fields can be queried with regular expressions.
7703 Bio-vcf is a new generation VCF parser, filter and converter. Bio-vcf is not
7704 only very fast for genome-wide (WGS) data, it also comes with a filtering,
7705 evaluation and rewrite language and can output any type of textual data,
7706 including VCF header and contents in RDF and JSON.")
7707 (home-page "https://github.com/vcflib/bio-vcf")
7708 (license license:expat)))
7710 (define-public r-summarizedexperiment
7712 (name "r-summarizedexperiment")
7716 (uri (bioconductor-uri "SummarizedExperiment" version))
7719 "04x6d4mcsnvz6glkmf6k2cv3fs8zk03i9rvv0ahpl793n8l411ps"))))
7721 `((upstream-name . "SummarizedExperiment")))
7722 (build-system r-build-system)
7724 `(("r-biobase" ,r-biobase)
7725 ("r-biocgenerics" ,r-biocgenerics)
7726 ("r-delayedarray" ,r-delayedarray)
7727 ("r-genomeinfodb" ,r-genomeinfodb)
7728 ("r-genomicranges" ,r-genomicranges)
7729 ("r-iranges" ,r-iranges)
7730 ("r-matrix" ,r-matrix)
7731 ("r-matrixgenerics" ,r-matrixgenerics)
7732 ("r-s4vectors" ,r-s4vectors)))
7734 `(("r-knitr" ,r-knitr)))
7735 (home-page "https://bioconductor.org/packages/SummarizedExperiment")
7736 (synopsis "Container for representing genomic ranges by sample")
7738 "The SummarizedExperiment container contains one or more assays, each
7739 represented by a matrix-like object of numeric or other mode. The rows
7740 typically represent genomic ranges of interest and the columns represent
7742 (license license:artistic2.0)))
7744 (define-public r-genomicalignments
7746 (name "r-genomicalignments")
7750 (uri (bioconductor-uri "GenomicAlignments" version))
7753 "1q95px6s6snsax4ax955zzpdlrwp5liwf70wqq0lrk9mp6lq0hbr"))))
7755 `((upstream-name . "GenomicAlignments")))
7756 (build-system r-build-system)
7758 `(("r-biocgenerics" ,r-biocgenerics)
7759 ("r-biocparallel" ,r-biocparallel)
7760 ("r-biostrings" ,r-biostrings)
7761 ("r-genomeinfodb" ,r-genomeinfodb)
7762 ("r-genomicranges" ,r-genomicranges)
7763 ("r-iranges" ,r-iranges)
7764 ("r-rsamtools" ,r-rsamtools)
7765 ("r-s4vectors" ,r-s4vectors)
7766 ("r-summarizedexperiment" ,r-summarizedexperiment)))
7767 (home-page "https://bioconductor.org/packages/GenomicAlignments")
7768 (synopsis "Representation and manipulation of short genomic alignments")
7770 "This package provides efficient containers for storing and manipulating
7771 short genomic alignments (typically obtained by aligning short reads to a
7772 reference genome). This includes read counting, computing the coverage,
7773 junction detection, and working with the nucleotide content of the
7775 (license license:artistic2.0)))
7777 (define-public r-rtracklayer
7779 (name "r-rtracklayer")
7783 (uri (bioconductor-uri "rtracklayer" version))
7786 "12zimhpdzjyzd81wrzz5hdbzvlgzcs22x1nnaf2jq4cba3ch5px8"))))
7787 (build-system r-build-system)
7790 (modify-phases %standard-phases
7791 (add-after 'unpack 'use-system-zlib
7793 (substitute* "DESCRIPTION"
7794 ((" zlibbioc,") ""))
7795 (substitute* "NAMESPACE"
7796 (("import\\(zlibbioc\\)") ""))
7799 `(("pkg-config" ,pkg-config)))
7803 `(("r-biocgenerics" ,r-biocgenerics)
7804 ("r-biostrings" ,r-biostrings)
7805 ("r-genomeinfodb" ,r-genomeinfodb)
7806 ("r-genomicalignments" ,r-genomicalignments)
7807 ("r-genomicranges" ,r-genomicranges)
7808 ("r-iranges" ,r-iranges)
7809 ("r-rcurl" ,r-rcurl)
7810 ("r-rsamtools" ,r-rsamtools)
7811 ("r-s4vectors" ,r-s4vectors)
7813 ("r-xvector" ,r-xvector)
7814 ("r-zlibbioc" ,r-zlibbioc)))
7815 (home-page "https://bioconductor.org/packages/rtracklayer")
7816 (synopsis "R interface to genome browsers and their annotation tracks")
7818 "rtracklayer is an extensible framework for interacting with multiple
7819 genome browsers (currently UCSC built-in) and manipulating annotation tracks
7820 in various formats (currently GFF, BED, bedGraph, BED15, WIG, BigWig and 2bit
7821 built-in). The user may export/import tracks to/from the supported browsers,
7822 as well as query and modify the browser state, such as the current viewport.")
7823 (license license:artistic2.0)))
7825 (define-public r-genomicfeatures
7827 (name "r-genomicfeatures")
7831 (uri (bioconductor-uri "GenomicFeatures" version))
7834 "168cf261vmcqffbzassavkjyz9a2af0l6zbv9cagkx6b1qrk3siz"))))
7836 `((upstream-name . "GenomicFeatures")))
7837 (build-system r-build-system)
7839 `(("r-annotationdbi" ,r-annotationdbi)
7840 ("r-biobase" ,r-biobase)
7841 ("r-biocgenerics" ,r-biocgenerics)
7842 ("r-biomart" ,r-biomart)
7843 ("r-biostrings" ,r-biostrings)
7845 ("r-genomeinfodb" ,r-genomeinfodb)
7846 ("r-genomicranges" ,r-genomicranges)
7847 ("r-iranges" ,r-iranges)
7848 ("r-rcurl" ,r-rcurl)
7849 ("r-rsqlite" ,r-rsqlite)
7850 ("r-rtracklayer" ,r-rtracklayer)
7851 ("r-s4vectors" ,r-s4vectors)
7852 ("r-xvector" ,r-xvector)))
7854 `(("r-knitr" ,r-knitr)))
7855 (home-page "https://bioconductor.org/packages/GenomicFeatures")
7856 (synopsis "Tools for working with transcript centric annotations")
7858 "This package provides a set of tools and methods for making and
7859 manipulating transcript centric annotations. With these tools the user can
7860 easily download the genomic locations of the transcripts, exons and cds of a
7861 given organism, from either the UCSC Genome Browser or a BioMart
7862 database (more sources will be supported in the future). This information is
7863 then stored in a local database that keeps track of the relationship between
7864 transcripts, exons, cds and genes. Flexible methods are provided for
7865 extracting the desired features in a convenient format.")
7866 (license license:artistic2.0)))
7868 (define-public r-go-db
7874 (uri (string-append "https://www.bioconductor.org/packages/"
7875 "release/data/annotation/src/contrib/GO.db_"
7879 "0i3wcf5h3n0dawzc1hy0kv74f06j80c47n4p3g3fmrcxlhi3jpa5"))))
7881 `((upstream-name . "GO.db")))
7882 (build-system r-build-system)
7884 `(("r-annotationdbi" ,r-annotationdbi)))
7885 (home-page "https://bioconductor.org/packages/GO.db")
7886 (synopsis "Annotation maps describing the entire Gene Ontology")
7888 "The purpose of this GO.db annotation package is to provide detailed
7889 information about the latest version of the Gene Ontologies.")
7890 (license license:artistic2.0)))
7892 (define-public r-topgo
7898 (uri (bioconductor-uri "topGO" version))
7901 "0vr3l9gvd3dhy446k3fkj6rm7z1abxi56rbnrs64297yzxaz1ngl"))))
7903 `((upstream-name . "topGO")))
7904 (build-system r-build-system)
7906 `(("r-annotationdbi" ,r-annotationdbi)
7908 ("r-biobase" ,r-biobase)
7909 ("r-biocgenerics" ,r-biocgenerics)
7910 ("r-go-db" ,r-go-db)
7911 ("r-graph" ,r-graph)
7912 ("r-lattice" ,r-lattice)
7913 ("r-matrixstats" ,r-matrixstats)
7914 ("r-sparsem" ,r-sparsem)))
7915 (home-page "https://bioconductor.org/packages/topGO")
7916 (synopsis "Enrichment analysis for gene ontology")
7918 "The topGO package provides tools for testing @dfn{gene ontology} (GO)
7919 terms while accounting for the topology of the GO graph. Different test
7920 statistics and different methods for eliminating local similarities and
7921 dependencies between GO terms can be implemented and applied.")
7922 ;; Any version of the LGPL applies.
7923 (license license:lgpl2.1+)))
7925 (define-public r-bsgenome
7931 (uri (bioconductor-uri "BSgenome" version))
7934 "1gbvmxr6r57smgvhqgwspbcnwyk4hsfkxkpzzcs6470q03zfb4wq"))))
7936 `((upstream-name . "BSgenome")))
7937 (build-system r-build-system)
7939 `(("r-biocgenerics" ,r-biocgenerics)
7940 ("r-biostrings" ,r-biostrings)
7941 ("r-genomeinfodb" ,r-genomeinfodb)
7942 ("r-genomicranges" ,r-genomicranges)
7943 ("r-iranges" ,r-iranges)
7944 ("r-matrixstats" ,r-matrixstats)
7945 ("r-rsamtools" ,r-rsamtools)
7946 ("r-rtracklayer" ,r-rtracklayer)
7947 ("r-s4vectors" ,r-s4vectors)
7948 ("r-xvector" ,r-xvector)))
7949 (home-page "https://bioconductor.org/packages/BSgenome")
7950 (synopsis "Infrastructure for Biostrings-based genome data packages")
7952 "This package provides infrastructure shared by all Biostrings-based
7953 genome data packages and support for efficient SNP representation.")
7954 (license license:artistic2.0)))
7956 (define-public r-impute
7962 (uri (bioconductor-uri "impute" version))
7965 "1pnjasw9i19nmxwjzrd9jbln31yc5jilfvwk414ya5zbqfsazvxa"))))
7967 `(("gfortran" ,gfortran)))
7968 (build-system r-build-system)
7969 (home-page "https://bioconductor.org/packages/impute")
7970 (synopsis "Imputation for microarray data")
7972 "This package provides a function to impute missing gene expression
7973 microarray data, using nearest neighbor averaging.")
7974 (license license:gpl2+)))
7976 (define-public r-seqpattern
7978 (name "r-seqpattern")
7982 (uri (bioconductor-uri "seqPattern" version))
7985 "0j68n6fwycxjpl2va5fw7ajb123n758s2pq997d76dysxghmrlzq"))))
7987 `((upstream-name . "seqPattern")))
7988 (build-system r-build-system)
7990 `(("r-biostrings" ,r-biostrings)
7991 ("r-genomicranges" ,r-genomicranges)
7992 ("r-iranges" ,r-iranges)
7993 ("r-kernsmooth" ,r-kernsmooth)
7994 ("r-plotrix" ,r-plotrix)))
7995 (home-page "https://bioconductor.org/packages/seqPattern")
7996 (synopsis "Visualising oligonucleotide patterns and motif occurrences")
7998 "This package provides tools to visualize oligonucleotide patterns and
7999 sequence motif occurrences across a large set of sequences centred at a common
8000 reference point and sorted by a user defined feature.")
8001 (license license:gpl3+)))
8003 (define-public r-genomation
8005 (name "r-genomation")
8009 (uri (bioconductor-uri "genomation" version))
8012 "1ana06irlpdgnmk8mb329nws9sm8n6max4qargf1xdcdf3rnk45g"))))
8013 (build-system r-build-system)
8015 `(("r-biostrings" ,r-biostrings)
8016 ("r-bsgenome" ,r-bsgenome)
8017 ("r-data-table" ,r-data-table)
8018 ("r-genomeinfodb" ,r-genomeinfodb)
8019 ("r-genomicalignments" ,r-genomicalignments)
8020 ("r-genomicranges" ,r-genomicranges)
8021 ("r-ggplot2" ,r-ggplot2)
8022 ("r-gridbase" ,r-gridbase)
8023 ("r-impute" ,r-impute)
8024 ("r-iranges" ,r-iranges)
8025 ("r-matrixstats" ,r-matrixstats)
8026 ("r-plotrix" ,r-plotrix)
8029 ("r-readr" ,r-readr)
8030 ("r-reshape2" ,r-reshape2)
8031 ("r-rsamtools" ,r-rsamtools)
8032 ("r-rtracklayer" ,r-rtracklayer)
8033 ("r-runit" ,r-runit)
8034 ("r-s4vectors" ,r-s4vectors)
8035 ("r-seqpattern" ,r-seqpattern)))
8037 `(("r-knitr" ,r-knitr)))
8038 (home-page "https://bioinformatics.mdc-berlin.de/genomation/")
8039 (synopsis "Summary, annotation and visualization of genomic data")
8041 "This package provides a package for summary and annotation of genomic
8042 intervals. Users can visualize and quantify genomic intervals over
8043 pre-defined functional regions, such as promoters, exons, introns, etc. The
8044 genomic intervals represent regions with a defined chromosome position, which
8045 may be associated with a score, such as aligned reads from HT-seq experiments,
8046 TF binding sites, methylation scores, etc. The package can use any tabular
8047 genomic feature data as long as it has minimal information on the locations of
8048 genomic intervals. In addition, it can use BAM or BigWig files as input.")
8049 (license license:artistic2.0)))
8051 (define-public r-genomationdata
8053 (name "r-genomationdata")
8057 ;; We cannot use bioconductor-uri here because this tarball is
8058 ;; located under "data/annotation/" instead of "bioc/".
8059 (uri (string-append "https://bioconductor.org/packages/"
8060 "release/data/experiment/src/contrib/"
8061 "genomationData_" version ".tar.gz"))
8064 "0igjsvfnws3498j65ifniw0kbxfqpfr59rcjddqvq4zsj453fx1g"))))
8065 (build-system r-build-system)
8066 ;; As this package provides little more than large data files, it doesn't
8067 ;; make sense to build substitutes.
8068 (arguments `(#:substitutable? #f))
8070 `(("r-knitr" ,r-knitr)))
8071 (home-page "https://bioinformatics.mdc-berlin.de/genomation/")
8072 (synopsis "Experimental data for use with the genomation package")
8074 "This package contains experimental genetic data for use with the
8075 genomation package. Included are Chip Seq, Methylation and Cage data,
8076 downloaded from Encode.")
8077 (license license:gpl3+)))
8079 (define-public r-seqlogo
8086 (uri (bioconductor-uri "seqLogo" version))
8089 "02rpzjjfg5chlwwfbvv72cm78cg2vfmdwzars0cin9hz1hd7rnq1"))))
8090 (properties `((upstream-name . "seqLogo")))
8091 (build-system r-build-system)
8093 `(("r-knitr" ,r-knitr)))
8094 (home-page "https://bioconductor.org/packages/seqLogo")
8095 (synopsis "Sequence logos for DNA sequence alignments")
8097 "seqLogo takes the position weight matrix of a DNA sequence motif and
8098 plots the corresponding sequence logo as introduced by Schneider and
8100 (license license:lgpl2.0+)))
8102 (define-public r-motifrg
8109 (uri (bioconductor-uri "motifRG" version))
8112 "1ml6zyzlk8yjbnfhga2qnw8nl43rankvka0kc1yljxr2b66aqbhn"))))
8113 (properties `((upstream-name . "motifRG")))
8114 (build-system r-build-system)
8116 `(("r-biostrings" ,r-biostrings)
8117 ("r-bsgenome" ,r-bsgenome)
8118 ("r-bsgenome-hsapiens-ucsc-hg19" ,r-bsgenome-hsapiens-ucsc-hg19)
8119 ("r-iranges" ,r-iranges)
8120 ("r-seqlogo" ,r-seqlogo)
8121 ("r-xvector" ,r-xvector)))
8122 (home-page "https://bioconductor.org/packages/motifRG")
8123 (synopsis "Discover motifs in high throughput sequencing data")
8125 "This package provides tools for discriminative motif discovery in high
8126 throughput genetic sequencing data sets using regression methods.")
8127 (license license:artistic2.0)))
8129 (define-public r-zlibbioc
8135 (uri (bioconductor-uri "zlibbioc" version))
8138 "0m36ddss0znvm19dhnxcclxjhgjplw8ajk8v419h20ab8an6khxg"))))
8140 `((upstream-name . "zlibbioc")))
8141 (build-system r-build-system)
8142 (home-page "https://bioconductor.org/packages/zlibbioc")
8143 (synopsis "Provider for zlib-1.2.5 to R packages")
8144 (description "This package uses the source code of zlib-1.2.5 to create
8145 libraries for systems that do not have these available via other means.")
8146 (license license:artistic2.0)))
8148 (define-public r-r4rna
8155 (uri (string-append "http://www.e-rna.org/r-chie/files/R4RNA_"
8159 "1p0i78wh76jfgmn9jphbwwaz6yy6pipzfg08xs54cxavxg2j81p5"))))
8160 (build-system r-build-system)
8162 `(("r-optparse" ,r-optparse)
8163 ("r-rcolorbrewer" ,r-rcolorbrewer)))
8164 (home-page "https://www.e-rna.org/r-chie/index.cgi")
8165 (synopsis "Analysis framework for RNA secondary structure")
8167 "The R4RNA package aims to be a general framework for the analysis of RNA
8168 secondary structure and comparative analysis in R.")
8169 (license license:gpl3+)))
8171 (define-public r-rhtslib
8178 (uri (bioconductor-uri "Rhtslib" version))
8181 "18wag2jnpda6078xjkpfdvar1gkb2myhw83gg03l39sabh35qya4"))))
8182 (properties `((upstream-name . "Rhtslib")))
8183 (build-system r-build-system)
8184 ;; Without this a temporary directory ends up in the Rhtslib.so binary,
8185 ;; which makes R abort the build.
8186 (arguments '(#:configure-flags '("--no-staged-install")))
8189 ("zlib" ,zlib) ; packages using rhtslib need to link with zlib
8190 ("r-zlibbioc" ,r-zlibbioc)))
8192 `(("pkg-config" ,pkg-config)
8193 ("r-knitr" ,r-knitr)))
8194 (home-page "https://github.com/nhayden/Rhtslib")
8195 (synopsis "High-throughput sequencing library as an R package")
8197 "This package provides the HTSlib C library for high-throughput
8198 nucleotide sequence analysis. The package is primarily useful to developers
8199 of other R packages who wish to make use of HTSlib.")
8200 (license license:lgpl2.0+)))
8202 (define-public r-bamsignals
8204 (name "r-bamsignals")
8209 (uri (bioconductor-uri "bamsignals" version))
8212 "0p3r9z9z5sfkd0b951cgr751k4z0yviyn1jfw9d4fcnyld7g1jxv"))))
8213 (build-system r-build-system)
8215 `(("r-biocgenerics" ,r-biocgenerics)
8216 ("r-genomicranges" ,r-genomicranges)
8217 ("r-iranges" ,r-iranges)
8219 ("r-rhtslib" ,r-rhtslib)
8220 ("r-zlibbioc" ,r-zlibbioc)))
8222 `(("r-knitr" ,r-knitr)))
8223 (home-page "https://bioconductor.org/packages/bamsignals")
8224 (synopsis "Extract read count signals from bam files")
8226 "This package efficiently obtains count vectors from indexed bam
8227 files. It counts the number of nucleotide sequence reads in given genomic
8228 ranges and it computes reads profiles and coverage profiles. It also handles
8230 (license license:gpl2+)))
8232 (define-public r-rcas
8238 (uri (bioconductor-uri "RCAS" version))
8241 "0vdxml618vqvf8xyh0zxs307p9zby0cj9dqyiiz625ilyq1hkw2m"))))
8242 (properties `((upstream-name . "RCAS")))
8243 (build-system r-build-system)
8245 `(("r-biocgenerics" ,r-biocgenerics)
8246 ("r-biostrings" ,r-biostrings)
8247 ("r-bsgenome" ,r-bsgenome)
8248 ("r-bsgenome-hsapiens-ucsc-hg19" ,r-bsgenome-hsapiens-ucsc-hg19)
8249 ("r-cowplot" ,r-cowplot)
8250 ("r-data-table" ,r-data-table)
8252 ("r-genomation" ,r-genomation)
8253 ("r-genomeinfodb" ,r-genomeinfodb)
8254 ("r-genomicfeatures" ,r-genomicfeatures)
8255 ("r-genomicranges" ,r-genomicranges)
8256 ("r-ggplot2" ,r-ggplot2)
8257 ("r-ggseqlogo" ,r-ggseqlogo)
8258 ("r-gprofiler2" ,r-gprofiler2)
8259 ("r-iranges" ,r-iranges)
8260 ("r-pbapply" ,r-pbapply)
8261 ("r-pheatmap" ,r-pheatmap)
8262 ("r-plotly" ,r-plotly)
8263 ("r-plotrix" ,r-plotrix)
8264 ("r-proxy" ,r-proxy)
8265 ("r-ranger" ,r-ranger)
8266 ("r-rsqlite" ,r-rsqlite)
8267 ("r-rtracklayer" ,r-rtracklayer)
8268 ("r-rmarkdown" ,r-rmarkdown)
8269 ("r-s4vectors" ,r-s4vectors)
8270 ("pandoc" ,pandoc)))
8272 `(("r-knitr" ,r-knitr)))
8273 (synopsis "RNA-centric annotation system")
8275 "RCAS aims to be a standalone RNA-centric annotation system that provides
8276 intuitive reports and publication-ready graphics. This package provides the R
8277 library implementing most of the pipeline's features.")
8278 (home-page "https://github.com/BIMSBbioinfo/RCAS")
8279 (license license:artistic2.0)))
8281 (define-public rcas-web
8288 (uri (string-append "https://github.com/BIMSBbioinfo/rcas-web/"
8289 "releases/download/v" version
8290 "/rcas-web-" version ".tar.gz"))
8293 "0wq951aj45gqki1bickg876i993lmawkp8x24agg264br5x716db"))))
8294 (build-system gnu-build-system)
8297 (modify-phases %standard-phases
8298 (add-before 'configure 'find-RCAS
8299 ;; The configure script can't find non-1.3.x versions of RCAS because
8300 ;; its R expression ‘1.10.1 >= 1.3.4’ evaluates to false.
8302 (substitute* "configure"
8303 (("1\\.3\\.4") "0.0.0"))
8305 (add-after 'install 'wrap-executable
8306 (lambda* (#:key inputs outputs #:allow-other-keys)
8307 (let* ((out (assoc-ref outputs "out"))
8308 (json (assoc-ref inputs "guile-json"))
8309 (redis (assoc-ref inputs "guile-redis"))
8310 (path (string-append
8311 json "/share/guile/site/2.2:"
8312 redis "/share/guile/site/2.2")))
8313 (wrap-program (string-append out "/bin/rcas-web")
8314 `("GUILE_LOAD_PATH" ":" = (,path))
8315 `("GUILE_LOAD_COMPILED_PATH" ":" = (,path))
8316 `("R_LIBS_SITE" ":" = (,(getenv "R_LIBS_SITE")))))
8319 `(("r-minimal" ,r-minimal)
8321 ("guile" ,guile-2.2)
8322 ("guile-json" ,guile-json-1)
8323 ("guile-redis" ,guile2.2-redis)))
8325 `(("pkg-config" ,pkg-config)))
8326 (home-page "https://github.com/BIMSBbioinfo/rcas-web")
8327 (synopsis "Web interface for RNA-centric annotation system (RCAS)")
8328 (description "This package provides a simple web interface for the
8329 @dfn{RNA-centric annotation system} (RCAS).")
8330 (license license:agpl3+)))
8332 (define-public r-mutationalpatterns
8334 (name "r-mutationalpatterns")
8339 (uri (bioconductor-uri "MutationalPatterns" version))
8342 "1988kjjgq8af0hj7chhpxi88717wwmzs9qgrwapjh0hm2hjwhn35"))))
8343 (build-system r-build-system)
8345 `(("r-knitr" ,r-knitr)))
8347 `(("r-biocgenerics" ,r-biocgenerics)
8348 ("r-biostrings" ,r-biostrings)
8349 ("r-bsgenome" ,r-bsgenome)
8350 ;; These two packages are suggested packages
8351 ("r-bsgenome-hsapiens-1000g" ,r-bsgenome-hsapiens-1000genomes-hs37d5)
8352 ("r-bsgenome-hsapiens-ucsc-hg19" ,r-bsgenome-hsapiens-ucsc-hg19)
8353 ("r-cowplot" ,r-cowplot)
8354 ("r-dplyr" ,r-dplyr)
8355 ("r-genomeinfodb" ,r-genomeinfodb)
8356 ("r-genomicranges" ,r-genomicranges)
8357 ("r-ggalluvial" ,r-ggalluvial)
8358 ("r-ggdendro" ,r-ggdendro)
8359 ("r-ggplot2" ,r-ggplot2)
8360 ("r-iranges" ,r-iranges)
8361 ("r-magrittr" ,r-magrittr)
8363 ("r-pracma" ,r-pracma)
8364 ("r-purrr" ,r-purrr)
8365 ("r-s4vectors" ,r-s4vectors)
8366 ("r-stringr" ,r-stringr)
8367 ("r-tibble" ,r-tibble)
8368 ("r-tidyr" ,r-tidyr)
8369 ("r-variantannotation" ,r-variantannotation)))
8370 (home-page "https://bioconductor.org/packages/MutationalPatterns/")
8371 (synopsis "Extract and visualize mutational patterns in genomic data")
8372 (description "This package provides an extensive toolset for the
8373 characterization and visualization of a wide range of mutational patterns
8374 in SNV base substitution data.")
8375 (license license:expat)))
8377 (define-public r-chipkernels
8378 (let ((commit "c9cfcacb626b1221094fb3490ea7bac0fd625372")
8381 (name "r-chipkernels")
8382 (version (string-append "1.1-" revision "." (string-take commit 9)))
8387 (url "https://github.com/ManuSetty/ChIPKernels")
8389 (file-name (string-append name "-" version))
8392 "14bj5qhjm1hsm9ay561nfbqi9wxsa7y487df2idsaaf6z10nw4v0"))))
8393 (build-system r-build-system)
8395 `(("r-iranges" ,r-iranges)
8396 ("r-xvector" ,r-xvector)
8397 ("r-biostrings" ,r-biostrings)
8398 ("r-bsgenome" ,r-bsgenome)
8399 ("r-gtools" ,r-gtools)
8400 ("r-genomicranges" ,r-genomicranges)
8401 ("r-sfsmisc" ,r-sfsmisc)
8402 ("r-kernlab" ,r-kernlab)
8403 ("r-s4vectors" ,r-s4vectors)
8404 ("r-biocgenerics" ,r-biocgenerics)))
8405 (home-page "https://github.com/ManuSetty/ChIPKernels")
8406 (synopsis "Build string kernels for DNA Sequence analysis")
8407 (description "ChIPKernels is an R package for building different string
8408 kernels used for DNA Sequence analysis. A dictionary of the desired kernel
8409 must be built and this dictionary can be used for determining kernels for DNA
8411 (license license:gpl2+))))
8413 (define-public r-seqgl
8421 (url "https://github.com/ManuSetty/SeqGL")
8423 (file-name (git-file-name name version))
8426 "1r6ywvhxl3ffv48lgj7sbd582mcc6dha3ksgc2qjlvjrnkbj3799"))))
8427 (build-system r-build-system)
8429 `(("r-biostrings" ,r-biostrings)
8430 ("r-chipkernels" ,r-chipkernels)
8431 ("r-genomicranges" ,r-genomicranges)
8432 ("r-spams" ,r-spams)
8433 ("r-wgcna" ,r-wgcna)
8434 ("r-fastcluster" ,r-fastcluster)))
8435 (home-page "https://github.com/ManuSetty/SeqGL")
8436 (synopsis "Group lasso for Dnase/ChIP-seq data")
8437 (description "SeqGL is a group lasso based algorithm to extract
8438 transcription factor sequence signals from ChIP, DNase and ATAC-seq profiles.
8439 This package presents a method which uses group lasso to discriminate between
8440 bound and non bound genomic regions to accurately identify transcription
8441 factors bound at the specific regions.")
8442 (license license:gpl2+)))
8444 (define-public r-tximport
8450 (uri (bioconductor-uri "tximport" version))
8453 "1nxnlvl4iv2392xa72j0lzy2xnb3vrvyhfrdj9l54znwkrryyq34"))))
8454 (build-system r-build-system)
8456 `(("r-knitr" ,r-knitr)))
8457 (home-page "https://bioconductor.org/packages/tximport")
8458 (synopsis "Import and summarize transcript-level estimates for gene-level analysis")
8460 "This package provides tools to import transcript-level abundance,
8461 estimated counts and transcript lengths, and to summarize them into matrices
8462 for use with downstream gene-level analysis packages. Average transcript
8463 length, weighted by sample-specific transcript abundance estimates, is
8464 provided as a matrix which can be used as an offset for different expression
8465 of gene-level counts.")
8466 (license license:gpl2+)))
8468 (define-public r-rhdf5filters
8470 (name "r-rhdf5filters")
8475 (uri (bioconductor-uri "rhdf5filters" version))
8478 "1jvnss44liapbc6hk93yg1gknv0ahd5x86dydqiwq9l65jd03psq"))))
8479 (properties `((upstream-name . "rhdf5filters")))
8480 (build-system r-build-system)
8482 `(("r-rhdf5lib" ,r-rhdf5lib)))
8486 `(("r-knitr" ,r-knitr)))
8487 (home-page "https://github.com/grimbough/rhdf5filters")
8488 (synopsis "HDF5 compression filters")
8490 "This package provides a collection of compression filters for use with
8492 (license license:bsd-2)))
8494 (define-public r-rhdf5
8500 (uri (bioconductor-uri "rhdf5" version))
8503 "0almr1vscrgj5g4dyrags131wia2pmdbdidlpskbgm44ha6hpmqi"))))
8504 (build-system r-build-system)
8507 (modify-phases %standard-phases
8508 (add-after 'unpack 'fix-linking
8510 (substitute* "src/Makevars"
8511 ;; This is to avoid having a plain directory on the list of
8512 ;; libraries to link.
8513 (("\\(RHDF5_LIBS\\)" match)
8514 (string-append match "/libhdf5.a")))
8517 `(("r-rhdf5filters" ,r-rhdf5filters)
8518 ("r-rhdf5lib" ,r-rhdf5lib)))
8520 `(("r-knitr" ,r-knitr)))
8521 (home-page "https://bioconductor.org/packages/rhdf5")
8522 (synopsis "HDF5 interface to R")
8524 "This R/Bioconductor package provides an interface between HDF5 and R.
8525 HDF5's main features are the ability to store and access very large and/or
8526 complex datasets and a wide variety of metadata on mass storage (disk) through
8527 a completely portable file format. The rhdf5 package is thus suited for the
8528 exchange of large and/or complex datasets between R and other software
8529 package, and for letting R applications work on datasets that are larger than
8530 the available RAM.")
8531 (license license:artistic2.0)))
8533 (define-public r-annotationfilter
8535 (name "r-annotationfilter")
8539 (uri (bioconductor-uri "AnnotationFilter" version))
8542 "0npk0laa2rc93rsh6yikj886zf2fl53a050j07fj9w67j0q0h3s9"))))
8544 `((upstream-name . "AnnotationFilter")))
8545 (build-system r-build-system)
8547 `(("r-genomicranges" ,r-genomicranges)
8548 ("r-lazyeval" ,r-lazyeval)))
8550 `(("r-knitr" ,r-knitr)))
8551 (home-page "https://github.com/Bioconductor/AnnotationFilter")
8552 (synopsis "Facilities for filtering Bioconductor annotation resources")
8554 "This package provides classes and other infrastructure to implement
8555 filters for manipulating Bioconductor annotation resources. The filters are
8556 used by @code{ensembldb}, @code{Organism.dplyr}, and other packages.")
8557 (license license:artistic2.0)))
8559 (define-public emboss
8565 (uri (string-append "ftp://emboss.open-bio.org/pub/EMBOSS/old/"
8566 (version-major+minor version) ".0/"
8567 "EMBOSS-" version ".tar.gz"))
8570 "0vsmz96gc411yj2iyzdrsmg4l2n1nhgmp7vrgzlxx3xixv9xbf0q"))))
8571 (build-system gnu-build-system)
8574 (list (string-append "--with-hpdf="
8575 (assoc-ref %build-inputs "libharu")))
8577 (modify-phases %standard-phases
8578 (add-after 'unpack 'fix-checks
8580 ;; The PNGDRIVER tests check for the presence of libgd, libpng
8581 ;; and zlib, but assume that they are all found at the same
8583 (substitute* "configure.in"
8584 (("CHECK_PNGDRIVER")
8585 "LIBS=\"$LIBS -lgd -lpng -lz -lm\"
8586 AC_DEFINE([PLD_png], [1], [Define to 1 if PNG support is available])
8587 AM_CONDITIONAL(AMPNG, true)"))
8589 (add-after 'fix-checks 'disable-update-check
8591 ;; At build time there is no connection to the Internet, so
8592 ;; looking for updates will not work.
8593 (substitute* "Makefile.am"
8594 (("\\$\\(bindir\\)/embossupdate") ""))
8596 (add-after 'disable-update-check 'autogen
8597 (lambda _ (invoke "autoreconf" "-vif") #t)))))
8603 ("libharu" ,libharu)
8606 `(("autoconf" ,autoconf)
8607 ("automake" ,automake)
8608 ("libtool" ,libtool)
8609 ("pkg-config" ,pkg-config)))
8610 (home-page "http://emboss.sourceforge.net")
8611 (synopsis "Molecular biology analysis suite")
8612 (description "EMBOSS is the \"European Molecular Biology Open Software
8613 Suite\". EMBOSS is an analysis package specially developed for the needs of
8614 the molecular biology (e.g. EMBnet) user community. The software
8615 automatically copes with data in a variety of formats and even allows
8616 transparent retrieval of sequence data from the web. It also provides a
8617 number of libraries for the development of software in the field of molecular
8618 biology. EMBOSS also integrates a range of currently available packages and
8619 tools for sequence analysis into a seamless whole.")
8620 (license license:gpl2+)))
8623 (let ((revision "1")
8624 (commit "3cc4567896d9d6442923da944beb704750a08d2d"))
8627 ;; The version is 2.13.0 even though no release archives have been
8628 ;; published as yet.
8629 (version (string-append "2.13.0-" revision "." (string-take commit 9)))
8633 (url "https://github.com/arq5x/bits")
8635 (file-name (string-append name "-" version "-checkout"))
8638 "17n2kffk4kmhivd8c98g2vr6y1s23vbg4sxlxs689wni66797hbs"))))
8639 (build-system gnu-build-system)
8641 `(#:tests? #f ;no tests included
8643 (modify-phases %standard-phases
8645 (add-after 'unpack 'remove-cuda
8647 (substitute* "Makefile"
8649 (("(bits_test_intersections) \\\\" _ match) match))
8652 (lambda* (#:key outputs #:allow-other-keys)
8654 "bin" (string-append (assoc-ref outputs "out") "/bin"))
8659 (home-page "https://github.com/arq5x/bits")
8660 (synopsis "Implementation of binary interval search algorithm")
8661 (description "This package provides an implementation of the
8662 BITS (Binary Interval Search) algorithm, an approach to interval set
8663 intersection. It is especially suited for the comparison of diverse genomic
8664 datasets and the exploration of large datasets of genome
8665 intervals (e.g. genes, sequence alignments).")
8666 (license license:gpl2))))
8668 (define-public piranha
8669 ;; There is no release tarball for the latest version. The latest commit is
8670 ;; older than one year at the time of this writing.
8671 (let ((revision "1")
8672 (commit "0466d364b71117d01e4471b74c514436cc281233"))
8675 (version (string-append "1.2.1-" revision "." (string-take commit 9)))
8679 (url "https://github.com/smithlabcode/piranha")
8681 (file-name (git-file-name name version))
8684 "117dc0zf20c61jam69sk4abl57ah6yi6i7qra7d7y5zrbgk12q5n"))))
8685 (build-system gnu-build-system)
8687 `(#:test-target "test"
8689 (modify-phases %standard-phases
8690 (add-after 'unpack 'copy-smithlab-cpp
8691 (lambda* (#:key inputs #:allow-other-keys)
8692 (for-each (lambda (file)
8693 (install-file file "./src/smithlab_cpp/"))
8694 (find-files (assoc-ref inputs "smithlab-cpp")))
8696 (add-after 'install 'install-to-store
8697 (lambda* (#:key outputs #:allow-other-keys)
8698 (let* ((out (assoc-ref outputs "out"))
8699 (bin (string-append out "/bin")))
8700 (for-each (lambda (file)
8701 (install-file file bin))
8702 (find-files "bin" ".*")))
8705 (list (string-append "--with-bam_tools_headers="
8706 (assoc-ref %build-inputs "bamtools") "/include/bamtools")
8707 (string-append "--with-bam_tools_library="
8708 (assoc-ref %build-inputs "bamtools") "/lib/bamtools"))))
8710 `(("bamtools" ,bamtools)
8711 ("samtools" ,samtools-0.1)
8714 ,(let ((commit "3723e2db438c51501d0423429ff396c3035ba46a"))
8718 (url "https://github.com/smithlabcode/smithlab_cpp")
8720 (file-name (string-append "smithlab_cpp-" commit "-checkout"))
8723 "0l4gvbwslw5ngziskja41c00x1r06l3yidv7y0xw9djibhykzy0g")))))))
8725 `(("python" ,python-2)))
8726 (home-page "https://github.com/smithlabcode/piranha")
8727 (synopsis "Peak-caller for CLIP-seq and RIP-seq data")
8729 "Piranha is a peak-caller for genomic data produced by CLIP-seq and
8730 RIP-seq experiments. It takes input in BED or BAM format and identifies
8731 regions of statistically significant read enrichment. Additional covariates
8732 may optionally be provided to further inform the peak-calling process.")
8733 (license license:gpl3+))))
8741 (uri (pypi-uri "PePr" version))
8744 "0qxjfdpl1b1y53nccws2d85f6k74zwmx8y8sd9rszcqhfayx6gdx"))))
8745 (build-system python-build-system)
8747 `(#:python ,python-2 ; python2 only
8748 #:tests? #f)) ; no tests included
8750 `(("python2-numpy" ,python2-numpy)
8751 ("python2-scipy" ,python2-scipy)
8752 ("python2-pysam" ,python2-pysam)))
8753 (home-page "https://github.com/shawnzhangyx/PePr")
8754 (synopsis "Peak-calling and prioritization pipeline for ChIP-Seq data")
8756 "PePr is a ChIP-Seq peak calling or differential binding analysis tool
8757 that is primarily designed for data with biological replicates. It uses a
8758 negative binomial distribution to model the read counts among the samples in
8759 the same group, and look for consistent differences between ChIP and control
8760 group or two ChIP groups run under different conditions.")
8761 (license license:gpl3+)))
8763 (define-public filevercmp
8764 (let ((commit "1a9b779b93d0b244040274794d402106907b71b7"))
8767 (version (string-append "0-1." (string-take commit 7)))
8771 (url "https://github.com/ekg/filevercmp")
8773 (file-name (git-file-name name commit))
8776 "1j9vxsy0y050v59h0q1d6501fcw1kjvj0d18l1xk2zyg0jzj247c"))))
8777 (build-system gnu-build-system)
8779 `(#:tests? #f ; There are no tests to run.
8781 (modify-phases %standard-phases
8782 (delete 'configure) ; There is no configure phase.
8784 (lambda* (#:key outputs #:allow-other-keys)
8785 (let ((out (assoc-ref outputs "out")))
8786 (install-file "filevercmp" (string-append out "/bin"))
8787 (install-file "filevercmp.h" (string-append out "/include"))
8789 (home-page "https://github.com/ekg/filevercmp")
8790 (synopsis "This program compares version strings")
8791 (description "This program compares version strings. It intends to be a
8792 replacement for strverscmp.")
8793 (license license:gpl3+))))
8795 (define-public multiqc
8802 (uri (pypi-uri "multiqc" version))
8805 "02iihfl0w0hpnr4pa0sbd1y9qxrg3ycyhjp5lidkcrqh1lmzs3zy"))))
8806 (build-system python-build-system)
8808 `(("python-jinja2" ,python-jinja2)
8809 ("python-simplejson" ,python-simplejson)
8810 ("python-pyyaml" ,python-pyyaml)
8811 ("python-click" ,python-click)
8812 ("python-spectra" ,python-spectra)
8813 ("python-requests" ,python-requests)
8814 ("python-markdown" ,python-markdown)
8815 ("python-lzstring" ,python-lzstring)
8816 ("python-matplotlib" ,python-matplotlib)
8817 ("python-numpy" ,python-numpy)
8818 ;; MultQC checks for the presence of nose at runtime.
8819 ("python-nose" ,python-nose)))
8822 (modify-phases %standard-phases
8823 (add-after 'unpack 'relax-requirements
8825 (substitute* "setup.py"
8826 ;; MultiQC 1.5 ‘requires’ a version of python-matplotlib older
8827 ;; than the one in Guix, but should work fine with 2.2.2.
8828 ;; See <https://github.com/ewels/MultiQC/issues/725> and
8829 ;; <https://github.com/ewels/MultiQC/issues/732> for details.
8830 (("['\"]matplotlib.*?['\"]")
8833 (home-page "https://multiqc.info")
8834 (synopsis "Aggregate bioinformatics analysis reports")
8836 "MultiQC is a tool to aggregate bioinformatics results across many
8837 samples into a single report. It contains modules for a large number of
8838 common bioinformatics tools.")
8839 (license license:gpl3+)))
8841 (define-public variant-tools
8843 (name "variant-tools")
8849 (url "https://github.com/vatlab/varianttools")
8850 ;; There is no tag corresponding to version 3.1.2
8851 (commit "813ae4a90d25b69abc8a40f4f70441fe09015249")))
8852 (file-name (git-file-name name version))
8855 "12ibdmksj7icyqhks4xyvd61bygk4pjmxn618kp6vgk1af01y34g"))))
8856 (build-system python-build-system)
8859 ("c-blosc" ,c-blosc)
8862 ("hdf5-blosc" ,hdf5-blosc)
8863 ("python-cython" ,python-cython)
8866 `(("python-numpy" ,python-numpy)
8867 ("python-pycurl" ,python-pycurl)
8868 ("python-pyzmq" ,python-pyzmq)
8869 ("python-scipy" ,python-scipy)
8870 ("python-tables" ,python-tables)))
8871 (home-page "https://vatlab.github.io/vat-docs/")
8872 (synopsis "Analyze genetic variants from Next-Gen sequencing studies")
8874 "Variant tools is a tool for the manipulation, annotation,
8875 selection, simulation, and analysis of variants in the context of next-gen
8876 sequencing analysis. Unlike some other tools used for next-gen sequencing
8877 analysis, variant tools is project based and provides a whole set of tools to
8878 manipulate and analyze genetic variants.")
8879 (license license:gpl3+)))
8881 (define-public r-chipseq
8888 (uri (bioconductor-uri "chipseq" version))
8891 "12pzq24aarvgxfmhcad0l5g951xqdvvi7bspgbsvlvmfkqd74j2v"))))
8892 (build-system r-build-system)
8894 `(("r-biocgenerics" ,r-biocgenerics)
8895 ("r-genomicranges" ,r-genomicranges)
8896 ("r-iranges" ,r-iranges)
8897 ("r-lattice" ,r-lattice)
8898 ("r-s4vectors" ,r-s4vectors)
8899 ("r-shortread" ,r-shortread)))
8900 (home-page "https://bioconductor.org/packages/chipseq")
8901 (synopsis "Package for analyzing ChIPseq data")
8903 "This package provides tools for processing short read data from ChIPseq
8905 (license license:artistic2.0)))
8907 (define-public r-copyhelper
8909 (name "r-copyhelper")
8914 (uri (string-append "https://bioconductor.org/packages/release/"
8915 "data/experiment/src/contrib/CopyhelpeR_"
8919 "0x7cyynjmxls9as2gg0iyp9x5fpalxmdjq914ss7i84i9zyk5bhq"))))
8920 (properties `((upstream-name . "CopyhelpeR")))
8921 (build-system r-build-system)
8922 (home-page "https://bioconductor.org/packages/CopyhelpeR/")
8923 (synopsis "Helper files for CopywriteR")
8925 "This package contains the helper files that are required to run the
8926 Bioconductor package CopywriteR. It contains pre-assembled 1kb bin GC-content
8927 and mappability files for the reference genomes hg18, hg19, hg38, mm9 and
8928 mm10. In addition, it contains a blacklist filter to remove regions that
8929 display copy number variation. Files are stored as GRanges objects from the
8930 GenomicRanges Bioconductor package.")
8931 (license license:gpl2)))
8933 (define-public r-copywriter
8935 (name "r-copywriter")
8940 (uri (bioconductor-uri "CopywriteR" version))
8943 "060p6l6l8i6b15hyyz5v5kkxih3h4wcciixii51m9mn82z23xr2f"))))
8944 (properties `((upstream-name . "CopywriteR")))
8945 (build-system r-build-system)
8947 `(("r-biocparallel" ,r-biocparallel)
8948 ("r-chipseq" ,r-chipseq)
8949 ("r-copyhelper" ,r-copyhelper)
8950 ("r-data-table" ,r-data-table)
8951 ("r-dnacopy" ,r-dnacopy)
8952 ("r-futile-logger" ,r-futile-logger)
8953 ("r-genomeinfodb" ,r-genomeinfodb)
8954 ("r-genomicalignments" ,r-genomicalignments)
8955 ("r-genomicranges" ,r-genomicranges)
8956 ("r-gtools" ,r-gtools)
8957 ("r-iranges" ,r-iranges)
8958 ("r-matrixstats" ,r-matrixstats)
8959 ("r-rsamtools" ,r-rsamtools)
8960 ("r-s4vectors" ,r-s4vectors)))
8961 (home-page "https://github.com/PeeperLab/CopywriteR")
8962 (synopsis "Copy number information from targeted sequencing")
8964 "CopywriteR extracts DNA copy number information from targeted sequencing
8965 by utilizing off-target reads. It allows for extracting uniformly distributed
8966 copy number information, can be used without reference, and can be applied to
8967 sequencing data obtained from various techniques including chromatin
8968 immunoprecipitation and target enrichment on small gene panels. Thereby,
8969 CopywriteR constitutes a widely applicable alternative to available copy
8970 number detection tools.")
8971 (license license:gpl2)))
8973 (define-public r-methylkit
8975 (name "r-methylkit")
8979 (uri (bioconductor-uri "methylKit" version))
8982 "1c9b11gfh3cc37iwym9rgsba3mh2xkp78a1gvnjqhzlkiz667mn3"))))
8983 (properties `((upstream-name . "methylKit")))
8984 (build-system r-build-system)
8986 `(("r-data-table" ,r-data-table)
8987 ("r-emdbook" ,r-emdbook)
8988 ("r-fastseg" ,r-fastseg)
8989 ("r-genomeinfodb" ,r-genomeinfodb)
8990 ("r-genomicranges" ,r-genomicranges)
8991 ("r-gtools" ,r-gtools)
8992 ("r-iranges" ,r-iranges)
8993 ("r-kernsmooth" ,r-kernsmooth)
8994 ("r-limma" ,r-limma)
8995 ("r-mclust" ,r-mclust)
8997 ("r-qvalue" ,r-qvalue)
8998 ("r-r-utils" ,r-r-utils)
9000 ("r-rhtslib" ,r-rhtslib)
9001 ("r-rsamtools" ,r-rsamtools)
9002 ("r-rtracklayer" ,r-rtracklayer)
9003 ("r-s4vectors" ,r-s4vectors)
9004 ("r-zlibbioc" ,r-zlibbioc)))
9006 `(("r-knitr" ,r-knitr))) ; for vignettes
9007 (home-page "https://github.com/al2na/methylKit")
9009 "DNA methylation analysis from high-throughput bisulfite sequencing results")
9011 "MethylKit is an R package for DNA methylation analysis and annotation
9012 from high-throughput bisulfite sequencing. The package is designed to deal
9013 with sequencing data from @dfn{Reduced representation bisulfite
9014 sequencing} (RRBS) and its variants, but also target-capture methods and whole
9015 genome bisulfite sequencing. It also has functions to analyze base-pair
9016 resolution 5hmC data from experimental protocols such as oxBS-Seq and
9018 (license license:artistic2.0)))
9020 (define-public r-sva
9027 (uri (bioconductor-uri "sva" version))
9030 "1hpzzg3qrgkd8kwg1m5gq94cikjgk9j4l1wk58fxl49s6fmd13zy"))))
9031 (build-system r-build-system)
9033 `(("r-edger" ,r-edger)
9034 ("r-genefilter" ,r-genefilter)
9036 ("r-biocparallel" ,r-biocparallel)
9037 ("r-matrixstats" ,r-matrixstats)
9038 ("r-limma" ,r-limma)))
9039 (home-page "https://bioconductor.org/packages/sva")
9040 (synopsis "Surrogate variable analysis")
9042 "This package contains functions for removing batch effects and other
9043 unwanted variation in high-throughput experiment. It also contains functions
9044 for identifying and building surrogate variables for high-dimensional data
9045 sets. Surrogate variables are covariates constructed directly from
9046 high-dimensional data like gene expression/RNA sequencing/methylation/brain
9047 imaging data that can be used in subsequent analyses to adjust for unknown,
9048 unmodeled, or latent sources of noise.")
9049 (license license:artistic2.0)))
9051 (define-public r-raremetals2
9053 (name "r-raremetals2")
9058 (uri (string-append "http://genome.sph.umich.edu/w/images/"
9059 "b/b7/RareMETALS2_" version ".tar.gz"))
9062 "0z5ljcgvnm06ja9lm85a3cniq7slxcy37aqqkxrdidr79an5fs4s"))))
9063 (properties `((upstream-name . "RareMETALS2")))
9064 (build-system r-build-system)
9066 `(("r-seqminer" ,r-seqminer)
9067 ("r-mvtnorm" ,r-mvtnorm)
9069 ("r-compquadform" ,r-compquadform)
9070 ("r-getopt" ,r-getopt)))
9071 (home-page "http://genome.sph.umich.edu/wiki/RareMETALS2")
9072 (synopsis "Analyze gene-level association tests for binary trait")
9074 "The R package rareMETALS2 is an extension of the R package rareMETALS.
9075 It was designed to meta-analyze gene-level association tests for binary trait.
9076 While rareMETALS offers a near-complete solution for meta-analysis of
9077 gene-level tests for quantitative trait, it does not offer the optimal
9078 solution for binary trait. The package rareMETALS2 offers improved features
9079 for analyzing gene-level association tests in meta-analyses for binary
9081 (license license:gpl3)))
9083 (define-public r-protgenerics
9085 (name "r-protgenerics")
9090 (uri (bioconductor-uri "ProtGenerics" version))
9093 "0yihxphgkshvfv1sn67wc4zvr2zlzws2j7ki3zabm6vyfkfdkfiz"))))
9094 (properties `((upstream-name . "ProtGenerics")))
9095 (build-system r-build-system)
9096 (home-page "https://github.com/lgatto/ProtGenerics")
9097 (synopsis "S4 generic functions for proteomics infrastructure")
9099 "This package provides S4 generic functions needed by Bioconductor
9100 proteomics packages.")
9101 (license license:artistic2.0)))
9103 (define-public r-mzr
9110 (uri (bioconductor-uri "mzR" version))
9113 "0ik0yrjhvk8r5pm990chn2aadp0gqzzkkm0027682ky34xp142sg"))
9114 (modules '((guix build utils)))
9117 (delete-file-recursively "src/boost")
9119 (properties `((upstream-name . "mzR")))
9120 (build-system r-build-system)
9123 (modify-phases %standard-phases
9124 (add-after 'unpack 'use-system-boost
9126 (substitute* "src/Makevars"
9127 (("\\./boost/libs.*") "")
9128 ;; This is to avoid having a plain directory on the list of
9129 ;; libraries to link.
9130 (("\\(RHDF5_LIBS\\)" match)
9131 (string-append match "/libhdf5.a"))
9132 (("PKG_LIBS=") "PKG_LIBS=$(BOOST_LIBS) ")
9133 (("\\ARCH_OBJS=" line)
9135 "\nBOOST_LIBS=-lboost_system -lboost_regex \
9136 -lboost_iostreams -lboost_thread -lboost_filesystem -lboost_chrono\n")))
9139 `(;; Our default boost package won't work here, unfortunately, even with
9140 ;; mzR version 2.24.1.
9141 ("boost" ,boost-for-mysql) ; use this instead of the bundled boost sources
9144 `(("r-biobase" ,r-biobase)
9145 ("r-biocgenerics" ,r-biocgenerics)
9146 ("r-ncdf4" ,r-ncdf4)
9147 ("r-protgenerics" ,r-protgenerics)
9149 ("r-rhdf5lib" ,r-rhdf5lib)
9150 ("r-zlibbioc" ,r-zlibbioc)))
9152 `(("r-knitr" ,r-knitr)))
9153 (home-page "https://github.com/sneumann/mzR/")
9154 (synopsis "Parser for mass spectrometry data files")
9156 "The mzR package provides a unified API to the common file formats and
9157 parsers available for mass spectrometry data. It comes with a wrapper for the
9158 ISB random access parser for mass spectrometry mzXML, mzData and mzML files.
9159 The package contains the original code written by the ISB, and a subset of the
9160 proteowizard library for mzML and mzIdentML. The netCDF reading code has
9161 previously been used in XCMS.")
9162 (license license:artistic2.0)))
9164 (define-public r-affyio
9171 (uri (bioconductor-uri "affyio" version))
9174 "14xnzrxrvgxgixjhq5a9fdgcmrxam2j74hwidkc9if92ffv6s83h"))))
9175 (build-system r-build-system)
9177 `(("r-zlibbioc" ,r-zlibbioc)))
9180 (home-page "https://github.com/bmbolstad/affyio")
9181 (synopsis "Tools for parsing Affymetrix data files")
9183 "This package provides routines for parsing Affymetrix data files based
9184 upon file format information. The primary focus is on accessing the CEL and
9186 (license license:lgpl2.0+)))
9188 (define-public r-affy
9195 (uri (bioconductor-uri "affy" version))
9198 "0ywz548cbzk2k1njnxhlk5ydzvz2dk78ka8kx53gwrmdc4sc2b06"))))
9199 (build-system r-build-system)
9201 `(("r-affyio" ,r-affyio)
9202 ("r-biobase" ,r-biobase)
9203 ("r-biocgenerics" ,r-biocgenerics)
9204 ("r-biocmanager" ,r-biocmanager)
9205 ("r-preprocesscore" ,r-preprocesscore)
9206 ("r-zlibbioc" ,r-zlibbioc)))
9209 (home-page "https://bioconductor.org/packages/affy")
9210 (synopsis "Methods for affymetrix oligonucleotide arrays")
9212 "This package contains functions for exploratory oligonucleotide array
9214 (license license:lgpl2.0+)))
9216 (define-public r-vsn
9223 (uri (bioconductor-uri "vsn" version))
9226 "0dfrfflidpnphwyqzmmfiz9blfqv6qa09xlwgfabhpfsf3ml2rlb"))))
9227 (build-system r-build-system)
9229 `(("r-affy" ,r-affy)
9230 ("r-biobase" ,r-biobase)
9231 ("r-ggplot2" ,r-ggplot2)
9232 ("r-lattice" ,r-lattice)
9233 ("r-limma" ,r-limma)))
9235 `(("r-knitr" ,r-knitr))) ; for vignettes
9236 (home-page "https://bioconductor.org/packages/release/bioc/html/vsn.html")
9237 (synopsis "Variance stabilization and calibration for microarray data")
9239 "The package implements a method for normalising microarray intensities,
9240 and works for single- and multiple-color arrays. It can also be used for data
9241 from other technologies, as long as they have similar format. The method uses
9242 a robust variant of the maximum-likelihood estimator for an
9243 additive-multiplicative error model and affine calibration. The model
9244 incorporates data calibration step (a.k.a. normalization), a model for the
9245 dependence of the variance on the mean intensity and a variance stabilizing
9246 data transformation. Differences between transformed intensities are
9247 analogous to \"normalized log-ratios\". However, in contrast to the latter,
9248 their variance is independent of the mean, and they are usually more sensitive
9249 and specific in detecting differential transcription.")
9250 (license license:artistic2.0)))
9252 (define-public r-mzid
9259 (uri (bioconductor-uri "mzID" version))
9262 "0s7d6cz1li7v3ni6n6hrdspl93yiyr283kmbbd3hhkfgzgx6kpq2"))))
9263 (properties `((upstream-name . "mzID")))
9264 (build-system r-build-system)
9266 `(("r-doparallel" ,r-doparallel)
9267 ("r-foreach" ,r-foreach)
9268 ("r-iterators" ,r-iterators)
9270 ("r-protgenerics" ,r-protgenerics)
9273 `(("r-knitr" ,r-knitr)))
9274 (home-page "https://bioconductor.org/packages/mzID")
9275 (synopsis "Parser for mzIdentML files")
9277 "This package provides a parser for mzIdentML files implemented using the
9278 XML package. The parser tries to be general and able to handle all types of
9279 mzIdentML files with the drawback of having less pretty output than a vendor
9281 (license license:gpl2+)))
9283 (define-public r-pcamethods
9285 (name "r-pcamethods")
9290 (uri (bioconductor-uri "pcaMethods" version))
9293 "04xb4vjky6hq58l30i1iq9rv5gzjdxnidjxpnzg7pvg67vz8pgf0"))))
9294 (properties `((upstream-name . "pcaMethods")))
9295 (build-system r-build-system)
9297 `(("r-biobase" ,r-biobase)
9298 ("r-biocgenerics" ,r-biocgenerics)
9300 ("r-rcpp" ,r-rcpp)))
9301 (home-page "https://github.com/hredestig/pcamethods")
9302 (synopsis "Collection of PCA methods")
9304 "This package provides Bayesian PCA, Probabilistic PCA, Nipals PCA,
9305 Inverse Non-Linear PCA and the conventional SVD PCA. A cluster based method
9306 for missing value estimation is included for comparison. BPCA, PPCA and
9307 NipalsPCA may be used to perform PCA on incomplete data as well as for
9308 accurate missing value estimation. A set of methods for printing and plotting
9309 the results is also provided. All PCA methods make use of the same data
9310 structure (pcaRes) to provide a common interface to the PCA results.")
9311 (license license:gpl3+)))
9313 (define-public r-msnbase
9320 (uri (bioconductor-uri "MSnbase" version))
9323 "0hxzs9zzljywqxr7q388hshpy1pdryhl0zkwffqbxpf5pcf92d3h"))))
9324 (properties `((upstream-name . "MSnbase")))
9325 (build-system r-build-system)
9327 `(("r-affy" ,r-affy)
9328 ("r-biobase" ,r-biobase)
9329 ("r-biocgenerics" ,r-biocgenerics)
9330 ("r-biocparallel" ,r-biocparallel)
9331 ("r-digest" ,r-digest)
9332 ("r-ggplot2" ,r-ggplot2)
9333 ("r-impute" ,r-impute)
9334 ("r-iranges" ,r-iranges)
9335 ("r-lattice" ,r-lattice)
9336 ("r-maldiquant" ,r-maldiquant)
9340 ("r-pcamethods" ,r-pcamethods)
9342 ("r-preprocesscore" ,r-preprocesscore)
9343 ("r-protgenerics" ,r-protgenerics)
9345 ("r-s4vectors" ,r-s4vectors)
9346 ("r-scales" ,r-scales)
9350 `(("r-knitr" ,r-knitr)))
9351 (home-page "https://github.com/lgatto/MSnbase")
9352 (synopsis "Base functions and classes for MS-based proteomics")
9354 "This package provides basic plotting, data manipulation and processing
9355 of mass spectrometry based proteomics data.")
9356 (license license:artistic2.0)))
9358 (define-public r-msnid
9365 (uri (bioconductor-uri "MSnID" version))
9368 "05bncy7lw2a3h8xgnavjiz56pc6mk8q7l6qdd81197nawxs3j02d"))))
9369 (properties `((upstream-name . "MSnID")))
9370 (build-system r-build-system)
9372 `(("r-annotationdbi" ,r-annotationdbi)
9373 ("r-annotationhub" ,r-annotationhub)
9374 ("r-biobase" ,r-biobase)
9375 ("r-biocgenerics" ,r-biocgenerics)
9376 ("r-biocstyle" ,r-biocstyle)
9377 ("r-biostrings" ,r-biostrings)
9378 ("r-data-table" ,r-data-table)
9379 ("r-doparallel" ,r-doparallel)
9380 ("r-dplyr" ,r-dplyr)
9381 ("r-foreach" ,r-foreach)
9382 ("r-ggplot2" ,r-ggplot2)
9383 ("r-iterators" ,r-iterators)
9384 ("r-msnbase" ,r-msnbase)
9385 ("r-msmstests" ,r-msmstests)
9388 ("r-protgenerics" ,r-protgenerics)
9389 ("r-purrr" ,r-purrr)
9390 ("r-r-cache" ,r-r-cache)
9392 ("r-reshape2" ,r-reshape2)
9393 ("r-rlang" ,r-rlang)
9394 ("r-runit" ,r-runit)
9395 ("r-stringr" ,r-stringr)
9396 ("r-tibble" ,r-tibble)
9397 ("r-xtable" ,r-xtable)))
9398 (home-page "https://bioconductor.org/packages/MSnID")
9399 (synopsis "Utilities for LC-MSn proteomics identifications")
9401 "This package extracts @dfn{tandem mass spectrometry} (MS/MS) ID data
9402 from mzIdentML (leveraging the mzID package) or text files. After collating
9403 the search results from multiple datasets it assesses their identification
9404 quality and optimize filtering criteria to achieve the maximum number of
9405 identifications while not exceeding a specified false discovery rate. It also
9406 contains a number of utilities to explore the MS/MS results and assess missed
9407 and irregular enzymatic cleavages, mass measurement accuracy, etc.")
9408 (license license:artistic2.0)))
9410 (define-public r-aroma-light
9412 (name "r-aroma-light")
9417 (uri (bioconductor-uri "aroma.light" version))
9420 "0pi37rlfqh24p9wd7l1xb3f7c7938xdscgcc5agp8c9qhajq25a0"))))
9421 (properties `((upstream-name . "aroma.light")))
9422 (build-system r-build-system)
9424 `(("r-matrixstats" ,r-matrixstats)
9425 ("r-r-methodss3" ,r-r-methodss3)
9427 ("r-r-utils" ,r-r-utils)))
9428 (home-page "https://github.com/HenrikBengtsson/aroma.light")
9429 (synopsis "Methods for normalization and visualization of microarray data")
9431 "This package provides methods for microarray analysis that take basic
9432 data types such as matrices and lists of vectors. These methods can be used
9433 standalone, be utilized in other packages, or be wrapped up in higher-level
9435 (license license:gpl2+)))
9437 (define-public r-deseq
9444 (uri (bioconductor-uri "DESeq" version))
9447 "047hph5aqmjnz1aqprziw0smdn5lf96hmwpnvqrxv1j2yfvcf3h1"))))
9448 (properties `((upstream-name . "DESeq")))
9449 (build-system r-build-system)
9451 `(("r-biobase" ,r-biobase)
9452 ("r-biocgenerics" ,r-biocgenerics)
9453 ("r-genefilter" ,r-genefilter)
9454 ("r-geneplotter" ,r-geneplotter)
9455 ("r-lattice" ,r-lattice)
9456 ("r-locfit" ,r-locfit)
9458 ("r-rcolorbrewer" ,r-rcolorbrewer)))
9459 (home-page "https://www-huber.embl.de/users/anders/DESeq/")
9460 (synopsis "Differential gene expression analysis")
9462 "This package provides tools for estimating variance-mean dependence in
9463 count data from high-throughput genetic sequencing assays and for testing for
9464 differential expression based on a model using the negative binomial
9466 (license license:gpl3+)))
9468 (define-public r-edaseq
9475 (uri (bioconductor-uri "EDASeq" version))
9478 "0fznj7lsgkss1svv4rq8g87s1gmnbd7hccim41dv1c2w2nl0n2ip"))))
9479 (properties `((upstream-name . "EDASeq")))
9480 (build-system r-build-system)
9482 `(("r-annotationdbi" ,r-annotationdbi)
9483 ("r-aroma-light" ,r-aroma-light)
9484 ("r-biobase" ,r-biobase)
9485 ("r-biocgenerics" ,r-biocgenerics)
9486 ("r-biocmanager" ,r-biocmanager)
9487 ("r-biomart" ,r-biomart)
9488 ("r-biostrings" ,r-biostrings)
9489 ("r-genomicfeatures" ,r-genomicfeatures)
9490 ("r-genomicranges" ,r-genomicranges)
9491 ("r-iranges" ,r-iranges)
9492 ("r-rsamtools" ,r-rsamtools)
9493 ("r-shortread" ,r-shortread)))
9495 `(("r-knitr" ,r-knitr)))
9496 (home-page "https://github.com/drisso/EDASeq")
9497 (synopsis "Exploratory data analysis and normalization for RNA-Seq")
9499 "This package provides support for numerical and graphical summaries of
9500 RNA-Seq genomic read data. Provided within-lane normalization procedures to
9501 adjust for GC-content effect (or other gene-level effects) on read counts:
9502 loess robust local regression, global-scaling, and full-quantile
9503 normalization. Between-lane normalization procedures to adjust for
9504 distributional differences between lanes (e.g., sequencing depth):
9505 global-scaling and full-quantile normalization.")
9506 (license license:artistic2.0)))
9508 (define-public r-interactivedisplaybase
9510 (name "r-interactivedisplaybase")
9515 (uri (bioconductor-uri "interactiveDisplayBase" version))
9518 "08id2hkx4ssxj34dildx00a4j3z0nv171b7b0wl6xjks7wk6lv01"))))
9520 `((upstream-name . "interactiveDisplayBase")))
9521 (build-system r-build-system)
9523 `(("r-biocgenerics" ,r-biocgenerics)
9525 ("r-shiny" ,r-shiny)))
9527 `(("r-knitr" ,r-knitr)))
9528 (home-page "https://bioconductor.org/packages/interactiveDisplayBase")
9529 (synopsis "Base package for web displays of Bioconductor objects")
9531 "This package contains the basic methods needed to generate interactive
9532 Shiny-based display methods for Bioconductor objects.")
9533 (license license:artistic2.0)))
9535 (define-public r-annotationhub
9537 (name "r-annotationhub")
9542 (uri (bioconductor-uri "AnnotationHub" version))
9545 "1950x654ffqx53b154kbph808zdh2xm5vmj9vzmc5nxc28fi2z5g"))))
9546 (properties `((upstream-name . "AnnotationHub")))
9547 (build-system r-build-system)
9549 `(("r-annotationdbi" ,r-annotationdbi)
9550 ("r-biocfilecache" ,r-biocfilecache)
9551 ("r-biocgenerics" ,r-biocgenerics)
9552 ("r-biocmanager" ,r-biocmanager)
9553 ("r-biocversion" ,r-biocversion)
9555 ("r-dplyr" ,r-dplyr)
9557 ("r-interactivedisplaybase" ,r-interactivedisplaybase)
9558 ("r-rappdirs" ,r-rappdirs)
9559 ("r-rsqlite" ,r-rsqlite)
9560 ("r-s4vectors" ,r-s4vectors)
9561 ("r-yaml" ,r-yaml)))
9563 `(("r-knitr" ,r-knitr)))
9564 (home-page "https://bioconductor.org/packages/AnnotationHub")
9565 (synopsis "Client to access AnnotationHub resources")
9567 "This package provides a client for the Bioconductor AnnotationHub web
9568 resource. The AnnotationHub web resource provides a central location where
9569 genomic files (e.g. VCF, bed, wig) and other resources from standard
9570 locations (e.g. UCSC, Ensembl) can be discovered. The resource includes
9571 metadata about each resource, e.g., a textual description, tags, and date of
9572 modification. The client creates and manages a local cache of files retrieved
9573 by the user, helping with quick and reproducible access.")
9574 (license license:artistic2.0)))
9576 (define-public r-fastseg
9583 (uri (bioconductor-uri "fastseg" version))
9586 "1ln6w93ag4wanp0nrm0pqngbfc88w95zq2kcj583hbxy885dkg4f"))))
9587 (build-system r-build-system)
9589 `(("r-biobase" ,r-biobase)
9590 ("r-biocgenerics" ,r-biocgenerics)
9591 ("r-genomicranges" ,r-genomicranges)
9592 ("r-iranges" ,r-iranges)
9593 ("r-s4vectors" ,r-s4vectors)))
9594 (home-page "https://www.bioinf.jku.at/software/fastseg/index.html")
9595 (synopsis "Fast segmentation algorithm for genetic sequencing data")
9597 "Fastseg implements a very fast and efficient segmentation algorithm.
9598 It can segment data from DNA microarrays and data from next generation
9599 sequencing for example to detect copy number segments. Further it can segment
9600 data from RNA microarrays like tiling arrays to identify transcripts. Most
9601 generally, it can segment data given as a matrix or as a vector. Various data
9602 formats can be used as input to fastseg like expression set objects for
9603 microarrays or GRanges for sequencing data.")
9604 (license license:lgpl2.0+)))
9606 (define-public r-keggrest
9613 (uri (bioconductor-uri "KEGGREST" version))
9616 "0k9z85xf9la2y98xqmdmjb8mci9fh2fdybkl77x1yl26hyalip0s"))))
9617 (properties `((upstream-name . "KEGGREST")))
9618 (build-system r-build-system)
9620 `(("r-biostrings" ,r-biostrings)
9624 `(("r-knitr" ,r-knitr)))
9625 (home-page "https://bioconductor.org/packages/KEGGREST")
9626 (synopsis "Client-side REST access to KEGG")
9628 "This package provides a package that provides a client interface to the
9629 @dfn{Kyoto Encyclopedia of Genes and Genomes} (KEGG) REST server.")
9630 (license license:artistic2.0)))
9632 (define-public r-gage
9639 (uri (bioconductor-uri "gage" version))
9642 "1iawa03dy4bl333my69d4sk7d74cjzfg5dpcxga6q5dglan4sp8r"))))
9643 (build-system r-build-system)
9645 `(("r-annotationdbi" ,r-annotationdbi)
9646 ("r-go-db" ,r-go-db)
9647 ("r-graph" ,r-graph)
9648 ("r-keggrest" ,r-keggrest)))
9649 (home-page (string-append "https://bmcbioinformatics.biomedcentral.com/"
9650 "articles/10.1186/1471-2105-10-161"))
9651 (synopsis "Generally applicable gene-set enrichment for pathway analysis")
9653 "GAGE is a published method for gene set (enrichment or GSEA) or pathway
9654 analysis. GAGE is generally applicable independent of microarray or RNA-Seq
9655 data attributes including sample sizes, experimental designs, assay platforms,
9656 and other types of heterogeneity. The gage package provides functions for
9657 basic GAGE analysis, result processing and presentation. In addition, it
9658 provides demo microarray data and commonly used gene set data based on KEGG
9659 pathways and GO terms. These functions and data are also useful for gene set
9660 analysis using other methods.")
9661 (license license:gpl2+)))
9663 (define-public r-genomicfiles
9665 (name "r-genomicfiles")
9670 (uri (bioconductor-uri "GenomicFiles" version))
9673 "0awnf0m1pz7cw9wvh9cfxz9k7xm6wnvjm7xbxf139lrhd4nlyqjz"))))
9674 (properties `((upstream-name . "GenomicFiles")))
9675 (build-system r-build-system)
9677 `(("r-biocgenerics" ,r-biocgenerics)
9678 ("r-biocparallel" ,r-biocparallel)
9679 ("r-genomeinfodb" ,r-genomeinfodb)
9680 ("r-genomicalignments" ,r-genomicalignments)
9681 ("r-genomicranges" ,r-genomicranges)
9682 ("r-iranges" ,r-iranges)
9683 ("r-matrixgenerics" ,r-matrixgenerics)
9684 ("r-rsamtools" ,r-rsamtools)
9685 ("r-rtracklayer" ,r-rtracklayer)
9686 ("r-s4vectors" ,r-s4vectors)
9687 ("r-summarizedexperiment" ,r-summarizedexperiment)
9688 ("r-variantannotation" ,r-variantannotation)))
9689 (home-page "https://bioconductor.org/packages/GenomicFiles")
9690 (synopsis "Distributed computing by file or by range")
9692 "This package provides infrastructure for parallel computations
9693 distributed by file or by range. User defined mapper and reducer functions
9694 provide added flexibility for data combination and manipulation.")
9695 (license license:artistic2.0)))
9697 (define-public r-complexheatmap
9699 (name "r-complexheatmap")
9704 (uri (bioconductor-uri "ComplexHeatmap" version))
9707 "1nx1xxpq8zrvi990v9fmvx3msl85pdz5dp1gp6m78q6i4s2alg5x"))))
9709 `((upstream-name . "ComplexHeatmap")))
9710 (build-system r-build-system)
9712 `(("r-cairo" ,r-cairo)
9713 ("r-circlize" ,r-circlize)
9715 ("r-colorspace" ,r-colorspace)
9716 ("r-digest" ,r-digest)
9717 ("r-getoptlong" ,r-getoptlong)
9718 ("r-globaloptions" ,r-globaloptions)
9719 ("r-iranges" ,r-iranges)
9720 ("r-matrixstats" ,r-matrixstats)
9722 ("r-rcolorbrewer" ,r-rcolorbrewer)
9723 ("r-s4vectors" ,r-s4vectors)))
9725 `(("r-knitr" ,r-knitr)))
9727 "https://github.com/jokergoo/ComplexHeatmap")
9728 (synopsis "Making Complex Heatmaps")
9730 "Complex heatmaps are efficient to visualize associations between
9731 different sources of data sets and reveal potential structures. This package
9732 provides a highly flexible way to arrange multiple heatmaps and supports
9733 self-defined annotation graphics.")
9734 (license license:gpl2+)))
9736 (define-public r-dirichletmultinomial
9738 (name "r-dirichletmultinomial")
9743 (uri (bioconductor-uri "DirichletMultinomial" version))
9746 "098zql6ryd1b0gkq4cjybblyh0x8xidxxfygqq5a5x9asl8y4vsk"))))
9748 `((upstream-name . "DirichletMultinomial")))
9749 (build-system r-build-system)
9753 `(("r-biocgenerics" ,r-biocgenerics)
9754 ("r-iranges" ,r-iranges)
9755 ("r-s4vectors" ,r-s4vectors)))
9756 (home-page "https://bioconductor.org/packages/DirichletMultinomial")
9757 (synopsis "Dirichlet-Multinomial mixture models for microbiome data")
9759 "Dirichlet-multinomial mixture models can be used to describe variability
9760 in microbial metagenomic data. This package is an interface to code
9761 originally made available by Holmes, Harris, and Quince, 2012, PLoS ONE 7(2):
9763 (license license:lgpl3)))
9765 (define-public r-ensembldb
9767 (name "r-ensembldb")
9772 (uri (bioconductor-uri "ensembldb" version))
9775 "04il99gcrqzakvc0bxchdp9gghkn1sp9lpiian0iz4y7r67z3wpy"))))
9776 (build-system r-build-system)
9778 `(("r-annotationdbi" ,r-annotationdbi)
9779 ("r-annotationfilter" ,r-annotationfilter)
9780 ("r-biobase" ,r-biobase)
9781 ("r-biocgenerics" ,r-biocgenerics)
9782 ("r-biostrings" ,r-biostrings)
9785 ("r-genomeinfodb" ,r-genomeinfodb)
9786 ("r-genomicfeatures" ,r-genomicfeatures)
9787 ("r-genomicranges" ,r-genomicranges)
9788 ("r-iranges" ,r-iranges)
9789 ("r-protgenerics" ,r-protgenerics)
9790 ("r-rsamtools" ,r-rsamtools)
9791 ("r-rsqlite" ,r-rsqlite)
9792 ("r-rtracklayer" ,r-rtracklayer)
9793 ("r-s4vectors" ,r-s4vectors)))
9795 `(("r-knitr" ,r-knitr)))
9796 (home-page "https://github.com/jotsetung/ensembldb")
9797 (synopsis "Utilities to create and use Ensembl-based annotation databases")
9799 "The package provides functions to create and use transcript-centric
9800 annotation databases/packages. The annotation for the databases are directly
9801 fetched from Ensembl using their Perl API. The functionality and data is
9802 similar to that of the TxDb packages from the @code{GenomicFeatures} package,
9803 but, in addition to retrieve all gene/transcript models and annotations from
9804 the database, the @code{ensembldb} package also provides a filter framework
9805 allowing to retrieve annotations for specific entries like genes encoded on a
9806 chromosome region or transcript models of lincRNA genes.")
9807 ;; No version specified
9808 (license license:lgpl3+)))
9810 (define-public r-organismdbi
9812 (name "r-organismdbi")
9817 (uri (bioconductor-uri "OrganismDbi" version))
9820 "1mklnzs0d0ygcdibwfnk5xqr8ln6wpa00qcaw9c68m342kql0jqw"))))
9821 (properties `((upstream-name . "OrganismDbi")))
9822 (build-system r-build-system)
9824 `(("r-annotationdbi" ,r-annotationdbi)
9825 ("r-biobase" ,r-biobase)
9826 ("r-biocgenerics" ,r-biocgenerics)
9827 ("r-biocmanager" ,r-biocmanager)
9829 ("r-genomicfeatures" ,r-genomicfeatures)
9830 ("r-genomicranges" ,r-genomicranges)
9831 ("r-graph" ,r-graph)
9832 ("r-iranges" ,r-iranges)
9834 ("r-s4vectors" ,r-s4vectors)))
9835 (home-page "https://bioconductor.org/packages/OrganismDbi")
9836 (synopsis "Software to enable the smooth interfacing of database packages")
9837 (description "The package enables a simple unified interface to several
9838 annotation packages each of which has its own schema by taking advantage of
9839 the fact that each of these packages implements a select methods.")
9840 (license license:artistic2.0)))
9842 (define-public r-biovizbase
9844 (name "r-biovizbase")
9849 (uri (bioconductor-uri "biovizBase" version))
9852 "10jflvadfcgxq2jnfxkpn417xd8ibh3zllz9rsqnq5w3wgfr4fhq"))))
9853 (properties `((upstream-name . "biovizBase")))
9854 (build-system r-build-system)
9856 `(("r-annotationdbi" ,r-annotationdbi)
9857 ("r-annotationfilter" ,r-annotationfilter)
9858 ("r-biocgenerics" ,r-biocgenerics)
9859 ("r-biostrings" ,r-biostrings)
9860 ("r-dichromat" ,r-dichromat)
9861 ("r-ensembldb" ,r-ensembldb)
9862 ("r-genomeinfodb" ,r-genomeinfodb)
9863 ("r-genomicalignments" ,r-genomicalignments)
9864 ("r-genomicfeatures" ,r-genomicfeatures)
9865 ("r-genomicranges" ,r-genomicranges)
9866 ("r-hmisc" ,r-hmisc)
9867 ("r-iranges" ,r-iranges)
9868 ("r-rcolorbrewer" ,r-rcolorbrewer)
9869 ("r-rlang" ,r-rlang)
9870 ("r-rsamtools" ,r-rsamtools)
9871 ("r-s4vectors" ,r-s4vectors)
9872 ("r-scales" ,r-scales)
9873 ("r-summarizedexperiment" ,r-summarizedexperiment)
9874 ("r-variantannotation" ,r-variantannotation)))
9875 (home-page "https://bioconductor.org/packages/biovizBase")
9876 (synopsis "Basic graphic utilities for visualization of genomic data")
9878 "The biovizBase package is designed to provide a set of utilities, color
9879 schemes and conventions for genomic data. It serves as the base for various
9880 high-level packages for biological data visualization. This saves development
9881 effort and encourages consistency.")
9882 (license license:artistic2.0)))
9884 (define-public r-dropbead
9885 (let ((commit "d746c6f3b32110428ea56d6a0001ce52a251c247")
9889 (version (string-append "0-" revision "." (string-take commit 7)))
9894 (url "https://github.com/rajewsky-lab/dropbead")
9896 (file-name (git-file-name name version))
9899 "0sbzma49aiiyw8b0jpr7fnhzys9nsqmp4hy4hdz1gzyg1lhnca26"))))
9900 (build-system r-build-system)
9902 `(("r-ggplot2" ,r-ggplot2)
9903 ("r-rcolorbrewer" ,r-rcolorbrewer)
9904 ("r-gridextra" ,r-gridextra)
9905 ("r-gplots" ,r-gplots)
9906 ("r-plyr" ,r-plyr)))
9907 (home-page "https://github.com/rajewsky-lab/dropbead")
9908 (synopsis "Basic exploration and analysis of Drop-seq data")
9909 (description "This package offers a quick and straight-forward way to
9910 explore and perform basic analysis of single cell sequencing data coming from
9911 droplet sequencing. It has been particularly tailored for Drop-seq.")
9912 (license license:gpl3))))
9914 (define-public r-cellchat
9916 "21edd226ca408e4c413408f98562d71ee0b54e5d")
9920 (version (git-version "1.0.0" revision commit))
9925 (url "https://github.com/sqjin/CellChat")
9927 (file-name (git-file-name name version))
9930 "0cvzl9mi8jjznpql2gv67swnk1dndn3a2h22z5l84h7lwpwjmh53"))
9932 '(for-each delete-file '("src/CellChat.so"
9933 "src/CellChat_Rcpp.o"
9934 "src/RcppExports.o")))))
9935 (properties `((upstream-name . "CellChat")))
9936 (build-system r-build-system)
9938 `(("r-biocgenerics" ,r-biocgenerics)
9939 ("r-circlize" ,r-circlize)
9940 ("r-colorspace" ,r-colorspace)
9941 ("r-complexheatmap" ,r-complexheatmap)
9942 ("r-cowplot" ,r-cowplot)
9943 ("r-dplyr" ,r-dplyr)
9946 ("r-forcats" ,r-forcats)
9947 ("r-future" ,r-future)
9948 ("r-future-apply" ,r-future-apply)
9949 ("r-gg-gap" ,r-gg-gap)
9950 ("r-ggalluvial" ,r-ggalluvial)
9951 ("r-ggplot2" ,r-ggplot2)
9952 ("r-ggrepel" ,r-ggrepel)
9953 ("r-igraph" ,r-igraph)
9954 ("r-irlba" ,r-irlba)
9955 ("r-magrittr" ,r-magrittr)
9956 ("r-matrix" ,r-matrix)
9958 ("r-patchwork" ,r-patchwork)
9959 ("r-pbapply" ,r-pbapply)
9960 ("r-rcolorbrewer" ,r-rcolorbrewer)
9962 ("r-rcppeigen" ,r-rcppeigen)
9963 ("r-reshape2" ,r-reshape2)
9964 ("r-reticulate" ,r-reticulate)
9965 ("r-rspectra" ,r-rspectra)
9966 ("r-rtsne" ,r-rtsne)
9967 ("r-scales" ,r-scales)
9968 ("r-shape" ,r-shape)
9970 ("r-stringr" ,r-stringr)
9971 ("r-svglite" ,r-svglite)))
9972 (native-inputs `(("r-knitr" ,r-knitr)))
9973 (home-page "https://github.com/sqjin/CellChat")
9974 (synopsis "Analysis of cell-cell communication from single-cell transcriptomics data")
9976 "This package infers, visualizes and analyzes the cell-cell
9977 communication networks from scRNA-seq data.")
9978 (license license:gpl3))))
9980 (define-public sambamba
9988 (url "https://github.com/biod/sambamba")
9989 (commit (string-append "v" version))))
9990 (file-name (git-file-name name version))
9993 "07dznzl6m8k7sw84jxw2kx6i3ymrapbmcmyh0fxz8wrybhw8fmwc"))))
9994 (build-system gnu-build-system)
9996 `(#:tests? #f ; there is no test target
9997 #:parallel-build? #f ; not supported
9999 (modify-phases %standard-phases
10000 (delete 'configure)
10001 (add-after 'unpack 'fix-ldc-version
10003 (substitute* "Makefile"
10004 ;; We use ldc2 instead of ldmd2 to compile sambamba.
10005 (("\\$\\(shell which ldmd2\\)") (which "ldc2")))
10007 (add-after 'unpack 'unbundle-prerequisites
10009 (substitute* "Makefile"
10010 (("= lz4/lib/liblz4.a") "= -L-llz4")
10011 (("ldc_version_info lz4-static") "ldc_version_info"))
10014 (lambda* (#:key outputs #:allow-other-keys)
10015 (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
10017 (copy-file (string-append "bin/sambamba-" ,version)
10018 (string-append bin "/sambamba"))
10021 `(("python" ,python)))
10026 (home-page "https://github.com/biod/sambamba")
10027 (synopsis "Tools for working with SAM/BAM data")
10028 (description "Sambamba is a high performance modern robust and
10029 fast tool (and library), written in the D programming language, for
10030 working with SAM and BAM files. Current parallelised functionality is
10031 an important subset of samtools functionality, including view, index,
10032 sort, markdup, and depth.")
10033 (license license:gpl2+)))
10035 (define-public ritornello
10037 (name "ritornello")
10041 (uri (git-reference
10042 (url "https://github.com/KlugerLab/Ritornello")
10043 (commit (string-append "v" version))))
10044 (file-name (git-file-name name version))
10047 "1xahvq215qld7x1w8vpa5zbrsj6p9crb9shqa2x89sb0aaxa02jk"))))
10048 (build-system gnu-build-system)
10050 `(#:tests? #f ; there are no tests
10052 (modify-phases %standard-phases
10053 (add-after 'unpack 'patch-samtools-references
10054 (lambda* (#:key inputs #:allow-other-keys)
10055 (substitute* '("src/SamStream.h"
10057 (("<sam.h>") "<samtools/sam.h>"))
10059 (delete 'configure)
10061 (lambda* (#:key inputs outputs #:allow-other-keys)
10062 (let* ((out (assoc-ref outputs "out"))
10063 (bin (string-append out "/bin/")))
10065 (install-file "bin/Ritornello" bin)
10068 `(("samtools" ,samtools-0.1)
10072 (home-page "https://github.com/KlugerLab/Ritornello")
10073 (synopsis "Control-free peak caller for ChIP-seq data")
10074 (description "Ritornello is a ChIP-seq peak calling algorithm based on
10075 signal processing that can accurately call binding events without the need to
10076 do a pair total DNA input or IgG control sample. It has been tested for use
10077 with narrow binding events such as transcription factor ChIP-seq.")
10078 (license license:gpl3+)))
10080 (define-public trim-galore
10082 (name "trim-galore")
10087 (uri (git-reference
10088 (url "https://github.com/FelixKrueger/TrimGalore")
10090 (file-name (git-file-name name version))
10093 "0yrwg6325j4sb9vnplvl3jplzab0qdhp92wl480qjinpfq88j4rs"))))
10094 (build-system gnu-build-system)
10096 `(#:tests? #f ; no tests
10098 (modify-phases %standard-phases
10099 (replace 'configure
10101 ;; Trim Galore tries to figure out what version of Python
10102 ;; cutadapt is using by looking at the shebang. Of course that
10103 ;; doesn't work, because cutadapt is wrapped in a shell script.
10104 (substitute* "trim_galore"
10105 (("my \\$python_return.*")
10106 "my $python_return = \"Python 3.999\";\n"))
10109 (add-after 'unpack 'hardcode-tool-references
10110 (lambda* (#:key inputs #:allow-other-keys)
10111 (substitute* "trim_galore"
10112 (("\\$path_to_cutadapt = 'cutadapt'")
10113 (string-append "$path_to_cutadapt = '"
10114 (assoc-ref inputs "cutadapt")
10116 (("\\$compression_path = \"gzip\"")
10117 (string-append "$compression_path = \""
10118 (assoc-ref inputs "gzip")
10121 (string-append "\""
10122 (assoc-ref inputs "gzip")
10125 (string-append "\""
10126 (assoc-ref inputs "pigz")
10130 (lambda* (#:key outputs #:allow-other-keys)
10131 (let ((bin (string-append (assoc-ref outputs "out")
10134 (install-file "trim_galore" bin)
10140 ("cutadapt" ,cutadapt)))
10142 `(("unzip" ,unzip)))
10143 (home-page "https://www.bioinformatics.babraham.ac.uk/projects/trim_galore/")
10144 (synopsis "Wrapper around Cutadapt and FastQC")
10145 (description "Trim Galore! is a wrapper script to automate quality and
10146 adapter trimming as well as quality control, with some added functionality to
10147 remove biased methylation positions for RRBS sequence files.")
10148 (license license:gpl3+)))
10150 (define-public gess
10156 (uri (string-append "http://compbio.uthscsa.edu/"
10158 "gess-" version ".src.tar.gz"))
10161 "0hyk403kxscclzfs24pvdgiv0wm03kjcziqdrp5w46cb049gz0d7"))))
10162 (build-system gnu-build-system)
10164 `(#:tests? #f ; no tests
10166 (modify-phases %standard-phases
10167 (delete 'configure)
10170 (lambda* (#:key inputs outputs #:allow-other-keys)
10171 (let* ((python (assoc-ref inputs "python"))
10172 (out (assoc-ref outputs "out"))
10173 (bin (string-append out "/bin/"))
10174 (target (string-append
10176 ,(version-major+minor
10177 (package-version python))
10178 "/site-packages/gess/")))
10180 (copy-recursively "." target)
10181 ;; Make GESS.py executable
10182 (chmod (string-append target "GESS.py") #o555)
10183 ;; Add Python shebang to the top and make Matplotlib
10185 (substitute* (string-append target "GESS.py")
10186 (("\"\"\"Description:" line)
10187 (string-append "#!" (which "python") "
10189 matplotlib.use('Agg')
10191 ;; Make sure GESS has all modules in its path
10192 (wrap-script (string-append target "GESS.py")
10193 `("PYTHONPATH" ":" = (,target ,(getenv "PYTHONPATH"))))
10195 (symlink (string-append target "GESS.py")
10196 (string-append bin "GESS.py"))
10199 `(("python" ,python-2)
10200 ("python2-pysam" ,python2-pysam)
10201 ("python2-scipy" ,python2-scipy)
10202 ("python2-numpy" ,python2-numpy)
10203 ("python2-networkx" ,python2-networkx)
10204 ("python2-biopython" ,python2-biopython)
10205 ("guile" ,guile-3.0))) ; for the script wrapper
10206 (home-page "https://compbio.uthscsa.edu/GESS_Web/")
10207 (synopsis "Detect exon-skipping events from raw RNA-seq data")
10209 "GESS is an implementation of a novel computational method to detect de
10210 novo exon-skipping events directly from raw RNA-seq data without the prior
10211 knowledge of gene annotation information. GESS stands for the graph-based
10212 exon-skipping scanner detection scheme.")
10213 (license license:bsd-3)))
10215 (define-public phylip
10222 (uri (string-append "http://evolution.gs.washington.edu/phylip/"
10223 "download/phylip-" version ".tar.gz"))
10226 "01jar1rayhr2gba2pgbw49m56rc5z4p5wn3ds0m188hrlln4a2nd"))))
10227 (build-system gnu-build-system)
10229 `(#:tests? #f ; no check target
10230 #:make-flags (list "-f" "Makefile.unx" "install")
10231 #:parallel-build? #f ; not supported
10233 (modify-phases %standard-phases
10234 (add-after 'unpack 'enter-dir
10235 (lambda _ (chdir "src") #t))
10236 (delete 'configure)
10238 (lambda* (#:key inputs outputs #:allow-other-keys)
10239 (let ((target (string-append (assoc-ref outputs "out")
10242 (for-each (lambda (file)
10243 (install-file file target))
10244 (find-files "../exe" ".*")))
10246 (home-page "http://evolution.genetics.washington.edu/phylip/")
10247 (synopsis "Tools for inferring phylogenies")
10248 (description "PHYLIP (the PHYLogeny Inference Package) is a package of
10249 programs for inferring phylogenies (evolutionary trees).")
10250 (license license:bsd-2)))
10259 (uri (string-append "https://integrativemodeling.org/"
10260 version "/download/imp-" version ".tar.gz"))
10263 "1z1vcpwbylixk0zywngg5iw0jv083jj1bqphi817jpg3fb9fx2jj"))))
10264 (build-system cmake-build-system)
10266 `( ;; CMake 3.17 or newer is required for the CMAKE_TEST_ARGUMENTS used
10267 ;; below to have an effect.
10270 (let ((disabled-tests
10271 '("expensive" ;exclude expensive tests
10272 "IMP.modeller" ;fail to import its own modules
10273 "IMP.parallel-test_sge.py" ;fail in build container
10274 ;; The following test fails non-reproducibly on
10275 ;; an inexact numbers assertion.
10276 "IMP.em-medium_test_local_fitting.py")))
10279 "-DCMAKE_CTEST_ARGUMENTS="
10281 (list "-L" "-tests?-" ;select only tests
10282 "-E" (format #f "'(~a)'" (string-join disabled-tests "|")))
10285 `(("python" ,python-wrapper)
10294 ;; Enabling MPI causes the build to use all the available memory and
10295 ;; fail (tested on a machine with 32 GiB of RAM).
10297 ("opencv" ,opencv)))
10299 `(("python-numpy" ,python-numpy)
10300 ("python-scipy" ,python-scipy)
10301 ("python-pandas" ,python-pandas)
10302 ("python-scikit-learn" ,python-scikit-learn)
10303 ("python-networkx" ,python-networkx)))
10304 (home-page "https://integrativemodeling.org")
10305 (synopsis "Integrative modeling platform")
10306 (description "IMP's broad goal is to contribute to a comprehensive
10307 structural characterization of biomolecules ranging in size and complexity
10308 from small peptides to large macromolecular assemblies, by integrating data
10309 from diverse biochemical and biophysical experiments. IMP provides a C++ and
10310 Python toolbox for solving complex modeling problems, and a number of
10311 applications for tackling some common problems in a user-friendly way.")
10312 ;; IMP is largely available under the GNU Lesser GPL; see the file
10313 ;; COPYING.LGPL for the full text of this license. Some IMP modules are
10314 ;; available under the GNU GPL (see the file COPYING.GPL).
10315 (license (list license:lgpl2.1+
10318 (define-public tadbit
10324 (uri (git-reference
10325 (url "https://github.com/3DGenomes/TADbit")
10326 (commit (string-append "v" version))))
10327 (file-name (git-file-name name version))
10330 "0hqrlymh2a2bimcfdvlssy1x5h1lp3h1c5a7jj11hmcqczzqn3ni"))))
10331 (build-system python-build-system)
10334 (modify-phases %standard-phases
10335 (add-after 'unpack 'fix-problems-with-setup.py
10336 (lambda* (#:key outputs #:allow-other-keys)
10337 ;; Don't attempt to install the bash completions to
10338 ;; the home directory.
10339 (rename-file "extras/.bash_completion"
10341 (substitute* "setup.py"
10342 (("\\(path.expanduser\\('~'\\)")
10343 (string-append "(\""
10344 (assoc-ref outputs "out")
10345 "/etc/bash_completion.d\""))
10346 (("extras/\\.bash_completion")
10350 (lambda* (#:key inputs outputs #:allow-other-keys)
10351 (add-installed-pythonpath inputs outputs)
10352 (invoke "python3" "test/test_all.py")
10355 `(("glib" ,glib "bin") ;for gtester
10356 ("pkg-config" ,pkg-config)))
10358 ;; TODO: add Chimera for visualization
10361 ("python-future" ,python-future)
10362 ("python-h5py" ,python-h5py)
10363 ("python-scipy" ,python-scipy)
10364 ("python-numpy" ,python-numpy)
10365 ("python-matplotlib" ,python-matplotlib)
10366 ("python-pysam" ,python-pysam)))
10367 (home-page "https://3dgenomes.github.io/TADbit/")
10368 (synopsis "Analyze, model, and explore 3C-based data")
10370 "TADbit is a complete Python library to deal with all steps to analyze,
10371 model, and explore 3C-based data. With TADbit the user can map FASTQ files to
10372 obtain raw interaction binned matrices (Hi-C like matrices), normalize and
10373 correct interaction matrices, identify and compare the so-called
10374 @dfn{Topologically Associating Domains} (TADs), build 3D models from the
10375 interaction matrices, and finally, extract structural properties from the
10376 models. TADbit is complemented by TADkit for visualizing 3D models.")
10377 (license license:gpl3+)))
10379 (define-public kentutils
10382 ;; 302.1.0 is out, but the only difference is the inclusion of
10383 ;; pre-built binaries.
10384 (version "302.0.0")
10388 (uri (git-reference
10389 (url "https://github.com/ENCODE-DCC/kentUtils")
10390 (commit (string-append "v" version))))
10391 (file-name (git-file-name name version))
10394 "0n1wbyjpzii2b9qhyp9r1q76j623cggpg3y8fmw78ld3z4y7ivha"))
10395 (modules '((guix build utils)
10400 ;; Only the contents of the specified directories are free
10401 ;; for all uses, so we remove the rest. "hg/autoSql" and
10402 ;; "hg/autoXml" are nominally free, but they depend on a
10403 ;; library that is built from the sources in "hg/lib",
10404 ;; which is nonfree.
10405 (let ((free (list "." ".."
10406 "utils" "lib" "inc" "tagStorm"
10407 "parasol" "htslib"))
10408 (directory? (lambda (file)
10409 (eq? 'directory (stat:type (stat file))))))
10410 (for-each (lambda (file)
10411 (and (directory? file)
10412 (delete-file-recursively file)))
10413 (map (cut string-append "src/" <>)
10416 (not (member file free)))))))
10417 ;; Only make the utils target, not the userApps target,
10418 ;; because that requires libraries we won't build.
10419 (substitute* "Makefile"
10420 ((" userApps") " utils"))
10421 ;; Only build libraries that are free.
10422 (substitute* "src/makefile"
10423 (("DIRS =.*") "DIRS =\n")
10424 (("cd jkOwnLib.*") "")
10427 (substitute* "src/utils/makefile"
10428 ;; These tools depend on "jkhgap.a", which is part of the
10429 ;; nonfree "src/hg/lib" directory.
10430 (("raSqlQuery") "")
10431 (("pslLiftSubrangeBlat") "")
10433 ;; Do not build UCSC tools, which may require nonfree
10435 (("ALL_APPS =.*") "ALL_APPS = $(UTILS_APPLIST)\n"))
10437 (build-system gnu-build-system)
10439 `( ;; There is no global test target and the test target for
10440 ;; individual tools depends on input files that are not
10444 (modify-phases %standard-phases
10445 (add-after 'unpack 'fix-permissions
10446 (lambda _ (make-file-writable "src/inc/localEnvironment.mk") #t))
10447 (add-after 'unpack 'fix-paths
10449 (substitute* "Makefile"
10450 (("/bin/echo") (which "echo")))
10452 (add-after 'unpack 'prepare-samtabix
10453 (lambda* (#:key inputs #:allow-other-keys)
10454 (copy-recursively (assoc-ref inputs "samtabix")
10457 (delete 'configure)
10459 (lambda* (#:key outputs #:allow-other-keys)
10460 (let ((bin (string-append (assoc-ref outputs "out")
10462 (copy-recursively "bin" bin))
10466 ,(let ((commit "10fd107909c1ac4d679299908be4262a012965ba"))
10469 (uri (git-reference
10470 (url "http://genome-source.cse.ucsc.edu/samtabix.git")
10472 (file-name (git-file-name "samtabix" (string-take commit 7)))
10475 "0c1nj64l42v395sa84n7az43xiap4i6f9n9dfz4058aqiwkhkmma")))))))
10481 ("mariadb-dev" ,mariadb "dev")
10482 ("openssl" ,openssl)))
10483 (home-page "https://genome.cse.ucsc.edu/index.html")
10484 (synopsis "Assorted bioinformatics utilities")
10485 (description "This package provides the kentUtils, a selection of
10486 bioinformatics utilities used in combination with the UCSC genome
10488 ;; Only a subset of the sources are released under a non-copyleft
10489 ;; free software license. All other sources are removed in a
10490 ;; snippet. See this bug report for an explanation of how the
10491 ;; license statements apply:
10492 ;; https://github.com/ENCODE-DCC/kentUtils/issues/12
10493 (license (license:non-copyleft
10494 "http://genome.ucsc.edu/license/"
10495 "The contents of this package are free for all uses."))))
10497 (define-public f-seq
10498 (let ((commit "6ccded34cff38cf432deed8503648b4a66953f9b")
10502 (version (string-append "1.1-" revision "." (string-take commit 7)))
10505 (uri (git-reference
10506 (url "https://github.com/aboyle/F-seq")
10508 (file-name (string-append name "-" version))
10511 "1nk33k0yajg2id4g59bc4szr58r2q6pdq42vgcw054m8ip9wv26h"))
10512 (modules '((guix build utils)))
10513 ;; Remove bundled Java library archives.
10516 (for-each delete-file (find-files "lib" ".*"))
10518 (build-system ant-build-system)
10520 `(#:tests? #f ; no tests included
10522 (modify-phases %standard-phases
10524 (lambda* (#:key inputs outputs #:allow-other-keys)
10525 (let* ((target (assoc-ref outputs "out"))
10526 (bin (string-append target "/bin"))
10527 (doc (string-append target "/share/doc/f-seq"))
10528 (lib (string-append target "/lib")))
10531 (substitute* "bin/linux/fseq"
10532 (("java") (which "java"))
10533 (("\\$REALDIR/../lib/commons-cli-1.1.jar")
10534 (string-append (assoc-ref inputs "java-commons-cli")
10535 "/share/java/commons-cli.jar"))
10537 (string-append "REALDIR=" bin "\n")))
10538 (install-file "README.txt" doc)
10539 (install-file "bin/linux/fseq" bin)
10540 (install-file "build~/fseq.jar" lib)
10541 (copy-recursively "lib" lib)
10545 ("java-commons-cli" ,java-commons-cli)))
10546 (home-page "https://fureylab.web.unc.edu/software/fseq/")
10547 (synopsis "Feature density estimator for high-throughput sequence tags")
10549 "F-Seq is a software package that generates a continuous tag sequence
10550 density estimation allowing identification of biologically meaningful sites
10551 such as transcription factor binding sites (ChIP-seq) or regions of open
10552 chromatin (DNase-seq). Output can be displayed directly in the UCSC Genome
10554 (license license:gpl3+))))
10556 (define-public bismark
10563 (uri (git-reference
10564 (url "https://github.com/FelixKrueger/Bismark")
10566 (file-name (string-append name "-" version "-checkout"))
10569 "0xchm3rgilj6vfjnyzfzzymfd7djr64sbrmrvs3njbwi66jqbzw9"))))
10570 (build-system perl-build-system)
10572 `(#:tests? #f ; there are no tests
10573 #:modules ((guix build utils)
10576 (guix build perl-build-system))
10578 (modify-phases %standard-phases
10579 ;; The bundled plotly.js is minified.
10580 (add-after 'unpack 'replace-plotly.js
10581 (lambda* (#:key inputs #:allow-other-keys)
10582 (let* ((file (assoc-ref inputs "plotly.js"))
10583 (installed "plotly/plotly.js"))
10584 (let ((minified (open-pipe* OPEN_READ "uglify-js" file)))
10585 (call-with-output-file installed
10586 (cut dump-port minified <>))))
10588 (delete 'configure)
10591 (lambda* (#:key inputs outputs #:allow-other-keys)
10592 (let* ((out (assoc-ref outputs "out"))
10593 (bin (string-append out "/bin"))
10594 (share (string-append out "/share/bismark"))
10595 (docdir (string-append out "/share/doc/bismark"))
10596 (docs '("Docs/Bismark_User_Guide.html"))
10597 (scripts '("bismark"
10598 "bismark_genome_preparation"
10599 "bismark_methylation_extractor"
10602 "coverage2cytosine"
10603 "deduplicate_bismark"
10604 "filter_non_conversion"
10607 "NOMe_filtering")))
10608 (substitute* "bismark2report"
10609 (("\\$RealBin/plotly")
10610 (string-append share "/plotly")))
10614 (for-each (lambda (file) (install-file file bin))
10616 (for-each (lambda (file) (install-file file docdir))
10618 (copy-recursively "Docs/Images" (string-append docdir "/Images"))
10619 (copy-recursively "plotly"
10620 (string-append share "/plotly"))
10622 ;; Fix references to gunzip
10623 (substitute* (map (lambda (file)
10624 (string-append bin "/" file))
10627 (string-append "\"" (assoc-ref inputs "gzip")
10628 "/bin/gunzip -c")))
10632 ("perl-carp" ,perl-carp)
10633 ("perl-getopt-long" ,perl-getopt-long)))
10638 (uri (string-append "https://raw.githubusercontent.com/plotly/plotly.js/"
10639 "v1.39.4/dist/plotly.js"))
10641 (base32 "138mwsr4nf5qif4mrxx286mpnagxd1xwl6k8aidrjgknaqg88zyr"))))
10642 ("uglify-js" ,uglify-js)))
10643 (home-page "https://www.bioinformatics.babraham.ac.uk/projects/bismark/")
10644 (synopsis "Map bisulfite treated sequence reads and analyze methylation")
10645 (description "Bismark is a program to map bisulfite treated sequencing
10646 reads to a genome of interest and perform methylation calls in a single step.
10647 The output can be easily imported into a genome viewer, such as SeqMonk, and
10648 enables a researcher to analyse the methylation levels of their samples
10649 straight away. Its main features are:
10652 @item Bisulfite mapping and methylation calling in one single step
10653 @item Supports single-end and paired-end read alignments
10654 @item Supports ungapped and gapped alignments
10655 @item Alignment seed length, number of mismatches etc are adjustable
10656 @item Output discriminates between cytosine methylation in CpG, CHG
10659 (license license:gpl3+)))
10661 (define-public paml
10667 (uri (string-append "http://abacus.gene.ucl.ac.uk/software/"
10668 "paml" version ".tgz"))
10671 "13zf6h9fiqghwhch2h06x1zdr6s42plsnqahflp5g7myr3han3s6"))
10672 (modules '((guix build utils)))
10673 ;; Remove Windows binaries
10676 (for-each delete-file (find-files "." "\\.exe$"))
10677 ;; Some files in the original tarball have restrictive
10678 ;; permissions, which makes repackaging fail
10679 (for-each (lambda (file) (chmod file #o644)) (find-files "."))
10681 (build-system gnu-build-system)
10683 `(#:tests? #f ; there are no tests
10684 #:make-flags '("CC=gcc")
10686 (modify-phases %standard-phases
10687 (replace 'configure
10689 (substitute* "src/BFdriver.c"
10690 (("/bin/bash") (which "bash")))
10694 (lambda* (#:key outputs #:allow-other-keys)
10695 (let ((tools '("baseml" "basemlg" "codeml"
10696 "pamp" "evolver" "yn00" "chi2"))
10697 (bin (string-append (assoc-ref outputs "out") "/bin"))
10698 (docdir (string-append (assoc-ref outputs "out")
10699 "/share/doc/paml")))
10701 (for-each (lambda (file) (install-file file bin)) tools)
10702 (copy-recursively "../doc" docdir)
10704 (home-page "http://abacus.gene.ucl.ac.uk/software/paml.html")
10705 (synopsis "Phylogentic analysis by maximum likelihood")
10706 (description "PAML (for Phylogentic Analysis by Maximum Likelihood)
10707 contains a few programs for model fitting and phylogenetic tree reconstruction
10708 using nucleotide or amino-acid sequence data.")
10710 (license license:gpl3)))
10712 (define-public kallisto
10718 (uri (git-reference
10719 (url "https://github.com/pachterlab/kallisto")
10720 (commit (string-append "v" version))))
10721 (file-name (git-file-name name version))
10724 "0ij5n7v3m90jdfi7sn8nvglfyf58abp1f5xq42r4k73l0lfds6xi"))
10725 (modules '((guix build utils)))
10727 '(delete-file-recursively "ext/htslib/"))))
10728 (build-system cmake-build-system)
10730 `(#:tests? #f ; no "check" target
10732 (modify-phases %standard-phases
10733 (add-after 'unpack 'do-not-use-bundled-htslib
10735 (substitute* "CMakeLists.txt"
10736 (("^ExternalProject_Add" m)
10737 (string-append "if (NEVER)\n" m))
10739 (string-append ")\nendif(NEVER)"))
10740 (("include_directories\\(\\$\\{htslib_PREFIX.*" m)
10741 (string-append "# " m)))
10742 (substitute* "src/CMakeLists.txt"
10743 (("target_link_libraries\\(kallisto kallisto_core pthread \
10744 \\$\\{CMAKE_CURRENT_SOURCE_DIR\\}/../ext/htslib/libhts.a\\)")
10745 "target_link_libraries(kallisto kallisto_core pthread hts)")
10746 (("include_directories\\(\\.\\./ext/htslib\\)") ""))
10750 ("htslib" ,htslib-1.9)
10752 (home-page "https://pachterlab.github.io/kallisto/")
10753 (synopsis "Near-optimal RNA-Seq quantification")
10755 "Kallisto is a program for quantifying abundances of transcripts from
10756 RNA-Seq data, or more generally of target sequences using high-throughput
10757 sequencing reads. It is based on the novel idea of pseudoalignment for
10758 rapidly determining the compatibility of reads with targets, without the need
10759 for alignment. Pseudoalignment of reads preserves the key information needed
10760 for quantification, and kallisto is therefore not only fast, but also as
10761 accurate as existing quantification tools.")
10762 (license license:bsd-2)))
10764 (define-public libgff
10770 (uri (git-reference
10771 (url "https://github.com/Kingsford-Group/libgff")
10772 (commit (string-append "v" version))))
10773 (file-name (git-file-name name version))
10776 "0n6vfjnq7a2mianipscbshrvbncss8z4zkgkbjw754p9043nfkps"))))
10777 (build-system cmake-build-system)
10778 (arguments `(#:tests? #f)) ; no tests included
10779 (home-page "https://github.com/Kingsford-Group/libgff")
10780 (synopsis "Parser library for reading/writing GFF files")
10781 (description "This is a simple \"libraryfication\" of the GFF/GTF parsing
10782 code that is used in the Cufflinks codebase. The goal of this library is to
10783 provide this functionality without the necessity of drawing in a heavy-weight
10784 dependency like SeqAn.")
10785 (license (license:x11-style "https://www.boost.org/LICENSE_1_0.txt"))))
10787 (define-public sailfish
10793 (uri (git-reference
10794 (url "https://github.com/kingsfordgroup/sailfish")
10795 (commit (string-append "v" version))))
10796 (file-name (git-file-name name version))
10799 "1amcc5hqvsl42hg4x19bi9vy47cl874s0lw1fmi0hwsdk9i8c03v"))
10800 (modules '((guix build utils)))
10803 ;; Delete bundled headers for eigen3.
10804 (delete-file-recursively "include/eigen3/")
10806 (build-system cmake-build-system)
10808 `(#:configure-flags
10809 (list (string-append "-DBOOST_INCLUDEDIR="
10810 (assoc-ref %build-inputs "boost")
10812 (string-append "-DBOOST_LIBRARYDIR="
10813 (assoc-ref %build-inputs "boost")
10815 (string-append "-DBoost_LIBRARIES="
10816 "-lboost_iostreams "
10817 "-lboost_filesystem "
10822 "-lboost_program_options")
10823 "-DBoost_FOUND=TRUE"
10824 ;; Don't download RapMap---we already have it!
10825 "-DFETCHED_RAPMAP=1")
10826 ;; Tests must be run after installation and the location of the test
10827 ;; data file must be overridden. But the tests fail. It looks like
10828 ;; they are not really meant to be run.
10831 (modify-phases %standard-phases
10832 ;; Boost cannot be found, even though it's right there.
10833 (add-after 'unpack 'do-not-look-for-boost
10834 (lambda* (#:key inputs #:allow-other-keys)
10835 (substitute* "CMakeLists.txt"
10836 (("find_package\\(Boost 1\\.53\\.0") "#"))
10838 (add-after 'unpack 'do-not-assign-to-macro
10840 (substitute* "include/spdlog/details/format.cc"
10841 (("const unsigned CHAR_WIDTH = 1;") ""))
10843 (add-after 'unpack 'prepare-rapmap
10844 (lambda* (#:key inputs #:allow-other-keys)
10845 (let ((src "external/install/src/rapmap/")
10846 (include "external/install/include/rapmap/")
10847 (rapmap (assoc-ref inputs "rapmap")))
10848 (mkdir-p "/tmp/rapmap")
10850 (assoc-ref inputs "rapmap")
10852 "--strip-components=1")
10855 (for-each (lambda (file)
10856 (install-file file src))
10857 (find-files "/tmp/rapmap/src" "\\.(c|cpp)"))
10858 (copy-recursively "/tmp/rapmap/include" include))
10860 (add-after 'unpack 'use-system-libraries
10861 (lambda* (#:key inputs #:allow-other-keys)
10862 (substitute* '("src/SailfishIndexer.cpp"
10863 "src/SailfishUtils.cpp"
10864 "src/SailfishQuantify.cpp"
10865 "src/FASTAParser.cpp"
10867 "include/SailfishUtils.hpp"
10868 "include/SailfishIndex.hpp"
10869 "include/CollapsedEMOptimizer.hpp"
10870 "src/CollapsedEMOptimizer.cpp")
10871 (("#include \"jellyfish/config.h\"") ""))
10872 (substitute* "src/CMakeLists.txt"
10873 (("\\$\\{GAT_SOURCE_DIR\\}/external/install/include/jellyfish-2.2..")
10874 (string-append (assoc-ref inputs "jellyfish")
10875 "/include/jellyfish-" ,(package-version jellyfish)))
10876 (("\\$\\{GAT_SOURCE_DIR\\}/external/install/lib/libjellyfish-2.0.a")
10877 (string-append (assoc-ref inputs "jellyfish")
10878 "/lib/libjellyfish-2.0.a"))
10879 (("\\$\\{GAT_SOURCE_DIR\\}/external/install/lib/libdivsufsort.a")
10880 (string-append (assoc-ref inputs "libdivsufsort")
10881 "/lib/libdivsufsort.so"))
10882 (("\\$\\{GAT_SOURCE_DIR\\}/external/install/lib/libdivsufsort64.a")
10883 (string-append (assoc-ref inputs "libdivsufsort")
10884 "/lib/libdivsufsort64.so")))
10885 (substitute* "CMakeLists.txt"
10886 ;; Don't prefer static libs
10887 (("SET\\(CMAKE_FIND_LIBRARY_SUFFIXES.*") "")
10888 (("find_package\\(Jellyfish.*") "")
10889 (("ExternalProject_Add\\(libjellyfish") "message(")
10890 (("ExternalProject_Add\\(libgff") "message(")
10891 (("ExternalProject_Add\\(libsparsehash") "message(")
10892 (("ExternalProject_Add\\(libdivsufsort") "message("))
10894 ;; Ensure that Eigen headers can be found
10895 (setenv "CPLUS_INCLUDE_PATH"
10896 (string-append (assoc-ref inputs "eigen")
10898 (or (getenv "CPLUS_INCLUDE_PATH") "")))
10903 ("jemalloc" ,jemalloc)
10904 ("jellyfish" ,jellyfish)
10905 ("sparsehash" ,sparsehash)
10908 (uri (git-reference
10909 (url "https://github.com/COMBINE-lab/RapMap")
10910 (commit (string-append "sf-v" version))))
10911 (file-name (string-append "rapmap-sf-v" version "-checkout"))
10914 "1hv79l5i576ykv5a1srj2p0q36yvyl5966m0fcy2lbi169ipjakf"))
10915 (modules '((guix build utils)))
10916 ;; These files are expected to be excluded.
10918 '(begin (delete-file-recursively "include/spdlog")
10919 (for-each delete-file '("include/xxhash.h"
10922 ("libdivsufsort" ,libdivsufsort)
10927 `(("pkg-config" ,pkg-config)))
10928 (home-page "https://www.cs.cmu.edu/~ckingsf/software/sailfish/")
10929 (synopsis "Mapping-based isoform quantification from RNA-Seq reads")
10930 (description "Sailfish is a tool for genomic transcript quantification
10931 from RNA-seq data. It requires a set of target transcripts (either from a
10932 reference or de-novo assembly) to quantify. All you need to run sailfish is a
10933 fasta file containing your reference transcripts and a (set of) fasta/fastq
10934 file(s) containing your reads.")
10935 (license license:gpl3+)))
10937 (define libstadenio-for-salmon
10939 (name "libstadenio")
10943 (uri (git-reference
10944 (url "https://github.com/COMBINE-lab/staden-io_lib")
10945 (commit (string-append "v" version))))
10946 (file-name (string-append name "-" version "-checkout"))
10949 "1x8kxxqxl892vwfbprlbyfwkkv7c34ggkc94892x9x0g37x5nbwx"))))
10950 (build-system gnu-build-system)
10951 (arguments '(#:parallel-tests? #f)) ; not supported
10955 `(("perl" ,perl))) ; for tests
10956 (home-page "https://github.com/COMBINE-lab/staden-io_lib")
10957 (synopsis "General purpose trace and experiment file library")
10958 (description "This package provides a library of file reading and writing
10959 code to provide a general purpose Trace file (and Experiment File) reading
10962 The following file formats are supported:
10965 @item SCF trace files
10966 @item ABI trace files
10967 @item ALF trace files
10968 @item ZTR trace files
10969 @item SFF trace archives
10970 @item SRF trace archives
10971 @item Experiment files
10972 @item Plain text files
10973 @item SAM/BAM sequence files
10974 @item CRAM sequence files
10976 (license license:bsd-3)))
10978 (define-public salmon
10984 (uri (git-reference
10985 (url "https://github.com/COMBINE-lab/salmon")
10986 (commit (string-append "v" version))))
10987 (file-name (git-file-name name version))
10990 "1i2z4aivicmiixdz9bxalp7vmfzi3k92fxa63iqa8kgvfw5a4aq5"))
10991 (modules '((guix build utils)))
10994 ;; Delete bundled headers for eigen3.
10995 (delete-file-recursively "include/eigen3/")
10997 (build-system cmake-build-system)
10999 `(#:configure-flags
11000 (list (string-append "-DBOOST_INCLUDEDIR="
11001 (assoc-ref %build-inputs "boost")
11003 (string-append "-DBOOST_LIBRARYDIR="
11004 (assoc-ref %build-inputs "boost")
11006 (string-append "-DBoost_LIBRARIES="
11007 "-lboost_iostreams "
11008 "-lboost_filesystem "
11013 "-lboost_program_options")
11014 "-DBoost_FOUND=TRUE"
11015 "-DTBB_LIBRARIES=tbb tbbmalloc"
11016 ;; Don't download RapMap---we already have it!
11017 "-DFETCHED_RAPMAP=1")
11019 (modify-phases %standard-phases
11020 ;; Boost cannot be found, even though it's right there.
11021 (add-after 'unpack 'do-not-look-for-boost
11022 (lambda* (#:key inputs #:allow-other-keys)
11023 (substitute* "CMakeLists.txt"
11024 (("find_package\\(Boost 1\\.59\\.0") "#"))
11026 (add-after 'unpack 'do-not-phone-home
11028 (substitute* "src/Salmon.cpp"
11029 (("getVersionMessage\\(\\)") "\"\""))
11031 (add-after 'unpack 'prepare-rapmap
11032 (lambda* (#:key inputs #:allow-other-keys)
11033 (let ((src "external/install/src/rapmap/")
11034 (include "external/install/include/rapmap/")
11035 (rapmap (assoc-ref inputs "rapmap")))
11038 (copy-recursively (string-append rapmap "/src") src)
11039 (copy-recursively (string-append rapmap "/include") include)
11040 (for-each delete-file '("external/install/include/rapmap/xxhash.h"
11041 "external/install/include/rapmap/FastxParser.hpp"
11042 "external/install/include/rapmap/concurrentqueue.h"
11043 "external/install/include/rapmap/FastxParserThreadUtils.hpp"
11044 "external/install/src/rapmap/FastxParser.cpp"
11045 "external/install/src/rapmap/xxhash.c"))
11046 (delete-file-recursively "external/install/include/rapmap/spdlog"))
11048 (add-after 'unpack 'use-system-libraries
11049 (lambda* (#:key inputs #:allow-other-keys)
11050 (substitute* "CMakeLists.txt"
11051 ;; Don't prefer static libs
11052 (("SET\\(CMAKE_FIND_LIBRARY_SUFFIXES.*") "")
11053 (("set\\(TBB_LIBRARIES") "message(")
11054 ;; Don't download anything
11055 (("DOWNLOAD_COMMAND") "DOWNLOAD_COMMAND echo")
11056 (("externalproject_add\\(libcereal") "message(")
11057 (("externalproject_add\\(libgff") "message(")
11058 (("externalproject_add\\(libtbb") "message(")
11059 (("externalproject_add\\(libdivsufsort") "message(")
11060 (("externalproject_add\\(libstadenio") "message(")
11061 (("externalproject_add_step\\(") "message("))
11062 (substitute* "src/CMakeLists.txt"
11063 (("add_dependencies") "#")
11064 (("\\$\\{GAT_SOURCE_DIR\\}/external/install/lib/libstaden-read.a")
11065 (string-append (assoc-ref inputs "libstadenio-for-salmon")
11066 "/lib/libstaden-read.so"))
11067 (("\\$\\{GAT_SOURCE_DIR\\}/external/install/lib/libdivsufsort.a")
11068 (string-append (assoc-ref inputs "libdivsufsort")
11069 "/lib/libdivsufsort.so"))
11070 (("\\$\\{GAT_SOURCE_DIR\\}/external/install/lib/libdivsufsort64.a")
11071 (string-append (assoc-ref inputs "libdivsufsort")
11072 "/lib/libdivsufsort64.so"))
11073 (("lib/libdivsufsort.a") "/lib/libdivsufsort.so"))
11075 ;; Ensure that all headers can be found
11076 (setenv "CPLUS_INCLUDE_PATH"
11077 (string-append (or (getenv "CPLUS_INCLUDE_PATH") "")
11079 (assoc-ref inputs "eigen")
11080 "/include/eigen3"))
11082 ;; CMAKE_INSTALL_PREFIX does not exist when the tests are
11083 ;; run. It only exists after the install phase.
11084 (add-after 'unpack 'fix-tests
11086 (substitute* "src/CMakeLists.txt"
11087 (("DTOPLEVEL_DIR=\\$\\{CMAKE_INSTALL_PREFIX")
11088 "DTOPLEVEL_DIR=${GAT_SOURCE_DIR"))
11097 (uri (git-reference
11098 (url "https://github.com/COMBINE-lab/RapMap")
11099 (commit (string-append "salmon-v" version))))
11100 (file-name (string-append "rapmap-salmon-v" version "-checkout"))
11103 "1biplxf0csc7a8h1wf219b0vmjkvw6wk2zylhdklb577kgmihdms"))))
11104 ("jemalloc" ,jemalloc)
11107 ("libdivsufsort" ,libdivsufsort)
11108 ("libstadenio-for-salmon" ,libstadenio-for-salmon)
11112 `(("pkg-config" ,pkg-config)))
11113 (home-page "https://github.com/COMBINE-lab/salmon")
11114 (synopsis "Quantification from RNA-seq reads using lightweight alignments")
11115 (description "Salmon is a program to produce highly-accurate,
11116 transcript-level quantification estimates from RNA-seq data. Salmon achieves
11117 its accuracy and speed via a number of different innovations, including the
11118 use of lightweight alignments (accurate but fast-to-compute proxies for
11119 traditional read alignments) and massively-parallel stochastic collapsed
11120 variational inference.")
11121 (license license:gpl3+)))
11123 (define-public python-loompy
11125 (name "python-loompy")
11127 ;; The tarball on Pypi does not include the tests.
11130 (uri (git-reference
11131 (url "https://github.com/linnarsson-lab/loompy")
11133 (file-name (git-file-name name version))
11136 "12a5kjgiikapv93wahfw0frszx1lblnppyz3vs5gy8fgmgngra07"))))
11137 (build-system python-build-system)
11140 (modify-phases %standard-phases
11143 (setenv "PYTHONPATH"
11144 (string-append (getcwd) ":"
11145 (getenv "PYTHONPATH")))
11146 (invoke "pytest" "tests")
11149 `(("python-h5py" ,python-h5py)
11150 ("python-numpy" ,python-numpy)
11151 ("python-pandas" ,python-pandas)
11152 ("python-scipy" ,python-scipy)))
11154 `(("python-pytest" ,python-pytest)))
11155 (home-page "https://github.com/linnarsson-lab/loompy")
11156 (synopsis "Work with .loom files for single-cell RNA-seq data")
11157 (description "The loom file format is an efficient format for very large
11158 omics datasets, consisting of a main matrix, optional additional layers, a
11159 variable number of row and column annotations. Loom also supports sparse
11160 graphs. This library makes it easy to work with @file{.loom} files for
11161 single-cell RNA-seq data.")
11162 (license license:bsd-3)))
11164 ;; We cannot use the latest commit because it requires Java 9.
11165 (define-public java-forester
11166 (let ((commit "86b07efe302d5094b42deed9260f719a4c4ac2e6")
11169 (name "java-forester")
11170 (version (string-append "0-" revision "." (string-take commit 7)))
11173 (uri (git-reference
11174 (url "https://github.com/cmzmasek/forester")
11176 (file-name (string-append name "-" version "-checkout"))
11179 "0vxavc1yrf84yrnf20dq26hi0lglidk8d382xrxsy4qmlbjd276z"))
11180 (modules '((guix build utils)))
11183 ;; Delete bundled jars and pre-built classes
11184 (delete-file-recursively "forester/java/resources")
11185 (delete-file-recursively "forester/java/classes")
11186 (for-each delete-file (find-files "forester/java/" "\\.jar$"))
11187 ;; Delete bundled applications
11188 (delete-file-recursively "forester_applications")
11190 (build-system ant-build-system)
11192 `(#:tests? #f ; there are none
11194 #:modules ((guix build ant-build-system)
11196 (guix build java-utils)
11200 (modify-phases %standard-phases
11201 (add-after 'unpack 'chdir
11202 (lambda _ (chdir "forester/java") #t))
11203 (add-after 'chdir 'fix-dependencies
11205 (chmod "build.xml" #o664)
11206 (call-with-output-file "build.xml.new"
11210 (with-input-from-file "build.xml"
11211 (lambda _ (xml->sxml #:trim-whitespace? #t)))
11212 `(;; Remove all unjar tags to avoid repacking classes.
11213 (unjar . ,(lambda _ '()))
11214 (*default* . ,(lambda (tag . kids) `(,tag ,@kids)))
11215 (*text* . ,(lambda (_ txt) txt))))
11217 (rename-file "build.xml.new" "build.xml")
11219 ;; FIXME: itext is difficult to package as it depends on a few
11220 ;; unpackaged libraries.
11221 (add-after 'chdir 'remove-dependency-on-unpackaged-itext
11223 (delete-file "src/org/forester/archaeopteryx/PdfExporter.java")
11224 (substitute* "src/org/forester/archaeopteryx/MainFrame.java"
11225 (("pdf_written_to = PdfExporter.*")
11226 "throw new IOException(\"PDF export is not available.\");"))
11228 ;; There is no install target
11229 (replace 'install (install-jars ".")))))
11231 `(("java-commons-codec" ,java-commons-codec)
11232 ("java-openchart2" ,java-openchart2)))
11233 (home-page "https://sites.google.com/site/cmzmasek/home/software/forester")
11234 (synopsis "Phylogenomics libraries for Java")
11235 (description "Forester is a collection of Java libraries for
11236 phylogenomics and evolutionary biology research. It includes support for
11237 reading, writing, and exporting phylogenetic trees.")
11238 (license license:lgpl2.1+))))
11240 (define-public java-forester-1.005
11242 (name "java-forester")
11246 (uri (string-append "https://repo1.maven.org/maven2/"
11247 "org/biojava/thirdparty/forester/"
11248 version "/forester-" version "-sources.jar"))
11249 (file-name (string-append name "-" version ".jar"))
11252 "04r8qv4rk3p71z4ajrvp11py1z46qrx0047j3zzs79s6lnsm3lcv"))))
11253 (build-system ant-build-system)
11255 `(#:tests? #f ; there are none
11257 #:modules ((guix build ant-build-system)
11259 (guix build java-utils)
11263 (modify-phases %standard-phases
11264 (add-after 'unpack 'fix-dependencies
11265 (lambda* (#:key inputs #:allow-other-keys)
11266 (call-with-output-file "build.xml"
11270 (with-input-from-file "src/build.xml"
11271 (lambda _ (xml->sxml #:trim-whitespace? #t)))
11272 `(;; Remove all unjar tags to avoid repacking classes.
11273 (unjar . ,(lambda _ '()))
11274 (*default* . ,(lambda (tag . kids) `(,tag ,@kids)))
11275 (*text* . ,(lambda (_ txt) txt))))
11277 (copy-file (assoc-ref inputs "synth_look_and_feel_1.xml")
11278 "synth_look_and_feel_1.xml")
11279 (copy-file (assoc-ref inputs "phyloxml.xsd")
11281 (substitute* "build.xml"
11282 (("../resources/synth_laf/synth_look_and_feel_1.xml")
11283 "synth_look_and_feel_1.xml")
11284 (("../resources/phyloxml_schema/1.10/phyloxml.xsd")
11287 ;; FIXME: itext is difficult to package as it depends on a few
11288 ;; unpackaged libraries.
11289 (add-after 'unpack 'remove-dependency-on-unpackaged-itext
11291 (delete-file "src/org/forester/archaeopteryx/PdfExporter.java")
11292 (substitute* '("src/org/forester/archaeopteryx/MainFrame.java"
11293 "src/org/forester/archaeopteryx/MainFrameApplication.java")
11294 (("pdf_written_to = PdfExporter.*")
11295 "throw new IOException(\"PDF export is not available.\"); /*")
11296 ((".getPrintSizeX\\(\\), getOptions\\(\\).getPrintSizeY\\(\\) \\);") "*/")
11297 (("getCurrentTreePanel\\(\\).getHeight\\(\\) \\);") "*/"))
11299 (add-after 'unpack 'delete-pre-built-classes
11300 (lambda _ (delete-file-recursively "src/classes") #t))
11301 ;; There is no install target
11302 (replace 'install (install-jars ".")))))
11304 `(("java-commons-codec" ,java-commons-codec)
11305 ("java-openchart2" ,java-openchart2)))
11306 ;; The source archive does not contain the resources.
11311 (uri (string-append "https://raw.githubusercontent.com/cmzmasek/forester/"
11312 "b61cc2dcede0bede317db362472333115756b8c6/"
11313 "forester/resources/phyloxml_schema/1.10/phyloxml.xsd"))
11314 (file-name (string-append name "-phyloxml-" version ".xsd"))
11317 "1zxc4m8sn4n389nqdnpxa8d0k17qnr3pm2y5y6g6vh4k0zm52npv"))))
11318 ("synth_look_and_feel_1.xml"
11321 (uri (string-append "https://raw.githubusercontent.com/cmzmasek/forester/"
11322 "29e04321615da6b35c1e15c60e52caf3f21d8e6a/"
11323 "forester/java/classes/resources/"
11324 "synth_look_and_feel_1.xml"))
11325 (file-name (string-append name "-synth-look-and-feel-" version ".xml"))
11328 "1gv5602gv4k7y7713y75a4jvj7i9s7nildsbdl7n9q10sc2ikg8h"))))))
11329 (home-page "https://sites.google.com/site/cmzmasek/home/software/forester")
11330 (synopsis "Phylogenomics libraries for Java")
11331 (description "Forester is a collection of Java libraries for
11332 phylogenomics and evolutionary biology research. It includes support for
11333 reading, writing, and exporting phylogenetic trees.")
11334 (license license:lgpl2.1+)))
11336 (define-public java-biojava-core
11338 (name "java-biojava-core")
11342 (uri (git-reference
11343 (url "https://github.com/biojava/biojava")
11344 (commit (string-append "biojava-" version))))
11345 (file-name (string-append name "-" version "-checkout"))
11348 "1bvryh2bpsvash8ln79cmc9sqm8qw72hz4xzwqxcrjm8ssxszhqk"))))
11349 (build-system ant-build-system)
11352 #:jar-name "biojava-core.jar"
11353 #:source-dir "biojava-core/src/main/java/"
11354 #:test-dir "biojava-core/src/test"
11355 ;; These tests seem to require internet access.
11356 #:test-exclude (list "**/SearchIOTest.java"
11357 "**/BlastXMLParserTest.java"
11358 "**/GenbankCookbookTest.java"
11359 "**/GenbankProxySequenceReaderTest.java")
11361 (modify-phases %standard-phases
11362 (add-before 'build 'copy-resources
11364 (copy-recursively "biojava-core/src/main/resources"
11367 (add-before 'check 'copy-test-resources
11369 (copy-recursively "biojava-core/src/test/resources"
11370 "build/test-classes")
11373 `(("java-log4j-api" ,java-log4j-api)
11374 ("java-log4j-core" ,java-log4j-core)
11375 ("java-slf4j-api" ,java-slf4j-api)
11376 ("java-slf4j-simple" ,java-slf4j-simple)))
11378 `(("java-junit" ,java-junit)
11379 ("java-hamcrest-core" ,java-hamcrest-core)))
11380 (home-page "https://biojava.org")
11381 (synopsis "Core libraries of Java framework for processing biological data")
11382 (description "BioJava is a project dedicated to providing a Java framework
11383 for processing biological data. It provides analytical and statistical
11384 routines, parsers for common file formats, reference implementations of
11385 popular algorithms, and allows the manipulation of sequences and 3D
11386 structures. The goal of the biojava project is to facilitate rapid
11387 application development for bioinformatics.
11389 This package provides the core libraries.")
11390 (license license:lgpl2.1+)))
11392 (define-public java-biojava-phylo
11393 (package (inherit java-biojava-core)
11394 (name "java-biojava-phylo")
11395 (build-system ant-build-system)
11398 #:jar-name "biojava-phylo.jar"
11399 #:source-dir "biojava-phylo/src/main/java/"
11400 #:test-dir "biojava-phylo/src/test"
11402 (modify-phases %standard-phases
11403 (add-before 'build 'copy-resources
11405 (copy-recursively "biojava-phylo/src/main/resources"
11408 (add-before 'check 'copy-test-resources
11410 (copy-recursively "biojava-phylo/src/test/resources"
11411 "build/test-classes")
11414 `(("java-log4j-api" ,java-log4j-api)
11415 ("java-log4j-core" ,java-log4j-core)
11416 ("java-slf4j-api" ,java-slf4j-api)
11417 ("java-slf4j-simple" ,java-slf4j-simple)
11418 ("java-biojava-core" ,java-biojava-core)
11419 ("java-forester" ,java-forester)))
11421 `(("java-junit" ,java-junit)
11422 ("java-hamcrest-core" ,java-hamcrest-core)))
11423 (home-page "https://biojava.org")
11424 (synopsis "Biojava interface to the forester phylogenomics library")
11425 (description "The phylo module provides a biojava interface layer to the
11426 forester phylogenomics library for constructing phylogenetic trees.")))
11428 (define-public java-biojava-alignment
11429 (package (inherit java-biojava-core)
11430 (name "java-biojava-alignment")
11431 (build-system ant-build-system)
11434 #:jar-name "biojava-alignment.jar"
11435 #:source-dir "biojava-alignment/src/main/java/"
11436 #:test-dir "biojava-alignment/src/test"
11438 (modify-phases %standard-phases
11439 (add-before 'build 'copy-resources
11441 (copy-recursively "biojava-alignment/src/main/resources"
11444 (add-before 'check 'copy-test-resources
11446 (copy-recursively "biojava-alignment/src/test/resources"
11447 "build/test-classes")
11450 `(("java-log4j-api" ,java-log4j-api)
11451 ("java-log4j-core" ,java-log4j-core)
11452 ("java-slf4j-api" ,java-slf4j-api)
11453 ("java-slf4j-simple" ,java-slf4j-simple)
11454 ("java-biojava-core" ,java-biojava-core)
11455 ("java-biojava-phylo" ,java-biojava-phylo)
11456 ("java-forester" ,java-forester)))
11458 `(("java-junit" ,java-junit)
11459 ("java-hamcrest-core" ,java-hamcrest-core)))
11460 (home-page "https://biojava.org")
11461 (synopsis "Biojava API for genetic sequence alignment")
11462 (description "The alignment module of BioJava provides an API that
11466 @item implementations of dynamic programming algorithms for sequence
11468 @item reading and writing of popular alignment file formats;
11469 @item a single-, or multi- threaded multiple sequence alignment algorithm.
11472 (define-public java-biojava-core-4.0
11473 (package (inherit java-biojava-core)
11474 (name "java-biojava-core")
11478 (uri (git-reference
11479 (url "https://github.com/biojava/biojava")
11480 (commit (string-append "biojava-" version))))
11481 (file-name (string-append name "-" version "-checkout"))
11484 "13675f6y9aqi7bi2lk3s1z7a22ynccjiqwa8izh7p97xi9wsfmd8"))))))
11486 (define-public java-biojava-phylo-4.0
11487 (package (inherit java-biojava-core-4.0)
11488 (name "java-biojava-phylo")
11489 (build-system ant-build-system)
11492 #:jar-name "biojava-phylo.jar"
11493 #:source-dir "biojava-phylo/src/main/java/"
11494 #:test-dir "biojava-phylo/src/test"
11496 (modify-phases %standard-phases
11497 (add-before 'build 'copy-resources
11499 (copy-recursively "biojava-phylo/src/main/resources"
11502 (add-before 'check 'copy-test-resources
11504 (copy-recursively "biojava-phylo/src/test/resources"
11505 "build/test-classes")
11508 `(("java-log4j-api" ,java-log4j-api)
11509 ("java-log4j-core" ,java-log4j-core)
11510 ("java-slf4j-api" ,java-slf4j-api)
11511 ("java-slf4j-simple" ,java-slf4j-simple)
11512 ("java-biojava-core" ,java-biojava-core-4.0)
11513 ("java-forester" ,java-forester-1.005)))
11515 `(("java-junit" ,java-junit)
11516 ("java-hamcrest-core" ,java-hamcrest-core)))
11517 (home-page "https://biojava.org")
11518 (synopsis "Biojava interface to the forester phylogenomics library")
11519 (description "The phylo module provides a biojava interface layer to the
11520 forester phylogenomics library for constructing phylogenetic trees.")))
11522 (define-public java-biojava-alignment-4.0
11523 (package (inherit java-biojava-core-4.0)
11524 (name "java-biojava-alignment")
11525 (build-system ant-build-system)
11528 #:jar-name "biojava-alignment.jar"
11529 #:source-dir "biojava-alignment/src/main/java/"
11530 #:test-dir "biojava-alignment/src/test"
11532 (modify-phases %standard-phases
11533 (add-before 'build 'copy-resources
11535 (copy-recursively "biojava-alignment/src/main/resources"
11538 (add-before 'check 'copy-test-resources
11540 (copy-recursively "biojava-alignment/src/test/resources"
11541 "build/test-classes")
11544 `(("java-log4j-api" ,java-log4j-api)
11545 ("java-log4j-core" ,java-log4j-core)
11546 ("java-slf4j-api" ,java-slf4j-api)
11547 ("java-slf4j-simple" ,java-slf4j-simple)
11548 ("java-biojava-core" ,java-biojava-core-4.0)
11549 ("java-biojava-phylo" ,java-biojava-phylo-4.0)
11550 ("java-forester" ,java-forester-1.005)))
11552 `(("java-junit" ,java-junit)
11553 ("java-hamcrest-core" ,java-hamcrest-core)))
11554 (home-page "https://biojava.org")
11555 (synopsis "Biojava API for genetic sequence alignment")
11556 (description "The alignment module of BioJava provides an API that
11560 @item implementations of dynamic programming algorithms for sequence
11562 @item reading and writing of popular alignment file formats;
11563 @item a single-, or multi- threaded multiple sequence alignment algorithm.
11566 (define-public dropseq-tools
11568 (name "dropseq-tools")
11573 (uri "http://mccarrolllab.com/download/1276/")
11574 (file-name (string-append "dropseq-tools-" version ".zip"))
11577 "0yrffckxqk5l8b5xb6z4laq157zd9mdypr2p4b4vq2bhjzi1sj0s"))
11578 ;; Delete bundled libraries
11579 (modules '((guix build utils)))
11582 (for-each delete-file (find-files "jar/lib" "\\.jar$"))
11583 (delete-file-recursively "3rdParty")
11585 (build-system ant-build-system)
11587 `(#:tests? #f ; test data are not included
11588 #:test-target "test"
11589 #:build-target "all"
11590 #:source-dir "public/src/"
11593 (list (string-append "-Dpicard.executable.dir="
11594 (assoc-ref %build-inputs "java-picard")
11596 #:modules ((ice-9 match)
11599 (guix build java-utils)
11600 (guix build ant-build-system))
11602 (modify-phases %standard-phases
11603 ;; FIXME: fails with "java.io.FileNotFoundException:
11604 ;; /gnu/store/…-dropseq-tools-1.13/share/java/lib/biojava-alignment.jar"
11605 (delete 'generate-jar-indices)
11606 ;; All dependencies must be linked to "lib", because that's where
11607 ;; they will be searched for when the Class-Path property of the
11608 ;; manifest is computed.
11609 (add-after 'unpack 'record-references
11610 (lambda* (#:key inputs #:allow-other-keys)
11611 (mkdir-p "jar/lib")
11612 (let ((dirs (filter-map (match-lambda
11614 (if (and (string-prefix? "java-" name)
11615 (not (string=? name "java-testng")))
11618 (for-each (lambda (jar)
11619 (symlink jar (string-append "jar/lib/" (basename jar))))
11620 (append-map (lambda (dir) (find-files dir "\\.jar$"))
11623 ;; There is no installation target
11625 (lambda* (#:key inputs outputs #:allow-other-keys)
11626 (let* ((out (assoc-ref outputs "out"))
11627 (bin (string-append out "/bin"))
11628 (share (string-append out "/share/java/"))
11629 (lib (string-append share "/lib/"))
11630 (scripts (list "BAMTagHistogram"
11631 "BAMTagofTagCounts"
11632 "BaseDistributionAtReadPosition"
11633 "CollapseBarcodesInPlace"
11634 "CollapseTagWithContext"
11636 "CreateIntervalsFiles"
11637 "DetectBeadSynthesisErrors"
11638 "DigitalExpression"
11639 "Drop-seq_alignment.sh"
11642 "GatherGeneGCLength"
11643 "GatherMolecularBarcodeDistributionByGene"
11644 "GatherReadQualityMetrics"
11647 "SelectCellsByNumTranscripts"
11648 "SingleCellRnaSeqMetricsCollector"
11649 "TagBamWithReadSequenceExtended"
11650 "TagReadWithGeneExon"
11651 "TagReadWithInterval"
11652 "TrimStartingSequence"
11653 "ValidateReference")))
11654 (for-each mkdir-p (list bin share lib))
11655 (install-file "dist/dropseq.jar" share)
11656 (for-each (lambda (script)
11657 (chmod script #o555)
11658 (install-file script bin))
11660 (substitute* (map (lambda (script)
11661 (string-append bin "/" script))
11663 (("^java") (which "java"))
11664 (("jar_deploy_dir=.*")
11665 (string-append "jar_deploy_dir=" share "\n"))))
11667 ;; FIXME: We do this after stripping jars because we don't want it to
11668 ;; copy all these jars and strip them. We only want to install
11669 ;; links. Arguably, this is a problem with the ant-build-system.
11670 (add-after 'strip-jar-timestamps 'install-links
11671 (lambda* (#:key outputs #:allow-other-keys)
11672 (let* ((out (assoc-ref outputs "out"))
11673 (share (string-append out "/share/java/"))
11674 (lib (string-append share "/lib/")))
11675 (for-each (lambda (jar)
11676 (symlink (readlink jar)
11677 (string-append lib (basename jar))))
11678 (find-files "jar/lib" "\\.jar$")))
11681 `(("jdk" ,icedtea-8)
11682 ("java-picard" ,java-picard-2.10.3)
11683 ("java-log4j-1.2-api" ,java-log4j-1.2-api)
11684 ("java-commons-math3" ,java-commons-math3)
11685 ("java-commons-jexl2" ,java-commons-jexl-2)
11686 ("java-commons-collections4" ,java-commons-collections4)
11687 ("java-commons-lang2" ,java-commons-lang)
11688 ("java-commons-io" ,java-commons-io)
11689 ("java-snappy-1.0.3-rc3" ,java-snappy-1)
11690 ("java-guava" ,java-guava)
11691 ("java-la4j" ,java-la4j)
11692 ("java-biojava-core" ,java-biojava-core-4.0)
11693 ("java-biojava-alignment" ,java-biojava-alignment-4.0)
11694 ("java-jdistlib" ,java-jdistlib)
11695 ("java-simple-xml" ,java-simple-xml)
11696 ("java-snakeyaml" ,java-snakeyaml)))
11699 ("java-testng" ,java-testng)))
11700 (home-page "http://mccarrolllab.com/dropseq/")
11701 (synopsis "Tools for Drop-seq analyses")
11702 (description "Drop-seq is a technology to enable biologists to
11703 analyze RNA expression genome-wide in thousands of individual cells at
11704 once. This package provides tools to perform Drop-seq analyses.")
11705 (license license:expat)))
11707 (define-public pigx-rnaseq
11709 (name "pigx-rnaseq")
11713 (uri (string-append "https://github.com/BIMSBbioinfo/pigx_rnaseq/"
11714 "releases/download/v" version
11715 "/pigx_rnaseq-" version ".tar.gz"))
11718 "0z3hr120wk2vrlmlpz1vp3n9wy3rq4y2mnzh2vf08qgqn2xfdwcw"))))
11719 (build-system gnu-build-system)
11721 `(#:parallel-tests? #f ; not supported
11723 (modify-phases %standard-phases
11724 ;; "test.sh" runs STAR, which requires excessive amounts of memory.
11725 (add-after 'unpack 'disable-resource-intensive-test
11727 (substitute* "Makefile.in"
11728 (("(^ tests/test_trim_galore/test.sh).*" _ m) m)
11729 (("^ tests/test_multiqc/test.sh") "")
11730 (("^ test.sh") ""))
11733 `(("coreutils" ,coreutils)
11736 ("snakemake" ,snakemake)
11738 ("multiqc" ,multiqc)
11739 ("star" ,star-for-pigx)
11740 ("trim-galore" ,trim-galore)
11742 ("samtools" ,samtools)
11743 ("r-minimal" ,r-minimal)
11744 ("r-rmarkdown" ,r-rmarkdown)
11745 ("r-ggplot2" ,r-ggplot2)
11746 ("r-ggrepel" ,r-ggrepel)
11747 ("r-gprofiler" ,r-gprofiler)
11748 ("r-deseq2" ,r-deseq2)
11750 ("r-knitr" ,r-knitr)
11751 ("r-pheatmap" ,r-pheatmap)
11752 ("r-corrplot" ,r-corrplot)
11753 ("r-reshape2" ,r-reshape2)
11754 ("r-plotly" ,r-plotly)
11755 ("r-scales" ,r-scales)
11756 ("r-summarizedexperiment" ,r-summarizedexperiment)
11757 ("r-crosstalk" ,r-crosstalk)
11758 ("r-tximport" ,r-tximport)
11759 ("r-rtracklayer" ,r-rtracklayer)
11760 ("r-rjson" ,r-rjson)
11763 ("pandoc-citeproc" ,pandoc-citeproc)
11764 ("python-wrapper" ,python-wrapper)
11765 ("python-pyyaml" ,python-pyyaml)))
11766 (home-page "https://bioinformatics.mdc-berlin.de/pigx/")
11767 (synopsis "Analysis pipeline for RNA sequencing experiments")
11768 (description "PiGX RNAseq is an analysis pipeline for preprocessing and
11769 reporting for RNA sequencing experiments. It is easy to use and produces high
11770 quality reports. The inputs are reads files from the sequencing experiment,
11771 and a configuration file which describes the experiment. In addition to
11772 quality control of the experiment, the pipeline produces a differential
11773 expression report comparing samples in an easily configurable manner.")
11774 (license license:gpl3+)))
11776 (define-public pigx-chipseq
11778 (name "pigx-chipseq")
11782 (uri (string-append "https://github.com/BIMSBbioinfo/pigx_chipseq/"
11783 "releases/download/v" version
11784 "/pigx_chipseq-" version ".tar.gz"))
11787 "0bb6hzpl0qq0jd57pgd1m5ns547rfipr6071a4m12vxlm4nlpi5q"))))
11788 (build-system gnu-build-system)
11789 ;; parts of the tests rely on access to the network
11790 (arguments '(#:tests? #f))
11793 ("coreutils" ,coreutils)
11794 ("r-minimal" ,r-minimal)
11795 ("r-argparser" ,r-argparser)
11796 ("r-biocparallel" ,r-biocparallel)
11797 ("r-biostrings" ,r-biostrings)
11798 ("r-chipseq" ,r-chipseq)
11799 ("r-corrplot" ,r-corrplot)
11800 ("r-data-table" ,r-data-table)
11801 ("r-deseq2" ,r-deseq2)
11802 ("r-dplyr" ,r-dplyr)
11804 ("r-genomation" ,r-genomation)
11805 ("r-genomicalignments" ,r-genomicalignments)
11806 ("r-genomicranges" ,r-genomicranges)
11807 ("r-ggplot2" ,r-ggplot2)
11808 ("r-ggrepel" ,r-ggrepel)
11809 ("r-gprofiler2" ,r-gprofiler2)
11810 ("r-heatmaply" ,r-heatmaply)
11811 ("r-htmlwidgets" ,r-htmlwidgets)
11812 ("r-jsonlite" ,r-jsonlite)
11813 ("r-pheatmap" ,r-pheatmap)
11814 ("r-plotly" ,r-plotly)
11815 ("r-rmarkdown" ,r-rmarkdown)
11816 ("r-rsamtools" ,r-rsamtools)
11817 ("r-rsubread" ,r-rsubread)
11818 ("r-rtracklayer" ,r-rtracklayer)
11819 ("r-s4vectors" ,r-s4vectors)
11820 ("r-stringr" ,r-stringr)
11821 ("r-tibble" ,r-tibble)
11822 ("r-tidyr" ,r-tidyr)
11823 ("python-wrapper" ,python-wrapper)
11824 ("python-pyyaml" ,python-pyyaml)
11825 ("python-magic" ,python-magic)
11826 ("python-xlrd" ,python-xlrd)
11827 ("trim-galore" ,trim-galore)
11829 ("multiqc" ,multiqc)
11832 ("pandoc-citeproc" ,pandoc-citeproc)
11836 ("snakemake" ,snakemake)
11837 ("samtools" ,samtools)
11838 ("bedtools" ,bedtools)
11839 ("kentutils" ,kentutils)))
11841 `(("python-pytest" ,python-pytest)))
11842 (home-page "https://bioinformatics.mdc-berlin.de/pigx/")
11843 (synopsis "Analysis pipeline for ChIP sequencing experiments")
11844 (description "PiGX ChIPseq is an analysis pipeline for preprocessing, peak
11845 calling and reporting for ChIP sequencing experiments. It is easy to use and
11846 produces high quality reports. The inputs are reads files from the sequencing
11847 experiment, and a configuration file which describes the experiment. In
11848 addition to quality control of the experiment, the pipeline enables to set up
11849 multiple peak calling analysis and allows the generation of a UCSC track hub
11850 in an easily configurable manner.")
11851 (license license:gpl3+)))
11853 (define-public pigx-bsseq
11855 (name "pigx-bsseq")
11859 (uri (string-append "https://github.com/BIMSBbioinfo/pigx_bsseq/"
11860 "releases/download/v" version
11861 "/pigx_bsseq-" version ".tar.gz"))
11864 "0mpzlay2d5cjpmrcp7knff6rg1c2mqszd638n7lw0mc0cycbp9f8"))))
11865 (build-system gnu-build-system)
11867 `(;; TODO: tests currently require 12+GB of RAM. See
11868 ;; https://github.com/BIMSBbioinfo/pigx_bsseq/issues/164
11871 (modify-phases %standard-phases
11872 (add-before 'check 'set-timezone
11873 ;; The readr package is picky about timezones.
11874 (lambda* (#:key inputs #:allow-other-keys)
11875 (setenv "TZ" "UTC+1")
11877 (string-append (assoc-ref inputs "tzdata")
11878 "/share/zoneinfo"))
11881 `(("tzdata" ,tzdata)))
11883 `(("coreutils" ,coreutils)
11886 ("r-minimal" ,r-minimal)
11887 ("r-annotationhub" ,r-annotationhub)
11889 ("r-genomation" ,r-genomation)
11890 ("r-ggrepel" ,r-ggrepel)
11891 ("r-methylkit" ,r-methylkit)
11892 ("r-rtracklayer" ,r-rtracklayer)
11893 ("r-rmarkdown" ,r-rmarkdown)
11894 ("r-bookdown" ,r-bookdown)
11895 ("r-ggplot2" ,r-ggplot2)
11896 ("r-ggbio" ,r-ggbio)
11898 ("pandoc-citeproc" ,pandoc-citeproc)
11899 ("python-wrapper" ,python-wrapper)
11900 ("python-pyyaml" ,python-pyyaml)
11901 ("snakemake" ,snakemake)
11902 ("bismark" ,bismark)
11904 ("bwa-meth" ,bwa-meth)
11906 ("methyldackel" ,methyldackel)
11907 ("multiqc" ,multiqc)
11908 ("trim-galore" ,trim-galore)
11909 ("cutadapt" ,cutadapt)
11910 ("samblaster" ,samblaster)
11911 ("samtools" ,samtools)))
11912 (home-page "https://bioinformatics.mdc-berlin.de/pigx/")
11913 (synopsis "Bisulfite sequencing pipeline from fastq to methylation reports")
11914 (description "PiGx BSseq is a data processing pipeline for raw fastq read
11915 data of bisulfite experiments; it produces reports on aggregate methylation
11916 and coverage and can be used to produce information on differential
11917 methylation and segmentation.")
11918 (license license:gpl3+)))
11920 (define-public pigx-scrnaseq
11922 (name "pigx-scrnaseq")
11926 (uri (string-append "https://github.com/BIMSBbioinfo/pigx_scrnaseq/"
11927 "releases/download/v" version
11928 "/pigx_scrnaseq-" version ".tar.gz"))
11931 "1h5mcxzwj3cidlkvy9ly5wmi48vwfsjf8dxjfirknqxr9a92hwlx"))))
11932 (build-system gnu-build-system)
11934 `(("coreutils" ,coreutils)
11937 ("flexbar" ,flexbar)
11938 ("java" ,icedtea-8)
11939 ("jellyfish" ,jellyfish)
11940 ("python-wrapper" ,python-wrapper)
11941 ("python-pyyaml" ,python-pyyaml)
11942 ("python-pandas" ,python-pandas)
11943 ("python-magic" ,python-magic)
11944 ("python-numpy" ,python-numpy)
11945 ("python-loompy" ,python-loompy)
11947 ("pandoc-citeproc" ,pandoc-citeproc)
11948 ("samtools" ,samtools)
11949 ("snakemake" ,snakemake)
11950 ("star" ,star-for-pigx)
11951 ("r-minimal" ,r-minimal)
11952 ("r-argparser" ,r-argparser)
11953 ("r-cowplot" ,r-cowplot)
11954 ("r-data-table" ,r-data-table)
11955 ("r-delayedarray" ,r-delayedarray)
11956 ("r-delayedmatrixstats" ,r-delayedmatrixstats)
11957 ("r-dplyr" ,r-dplyr)
11958 ("r-dropbead" ,r-dropbead)
11960 ("r-genomicalignments" ,r-genomicalignments)
11961 ("r-genomicfiles" ,r-genomicfiles)
11962 ("r-genomicranges" ,r-genomicranges)
11963 ("r-ggplot2" ,r-ggplot2)
11964 ("r-hdf5array" ,r-hdf5array)
11965 ("r-pheatmap" ,r-pheatmap)
11966 ("r-rmarkdown" ,r-rmarkdown)
11967 ("r-rsamtools" ,r-rsamtools)
11968 ("r-rtracklayer" ,r-rtracklayer)
11969 ("r-rtsne" ,r-rtsne)
11970 ("r-scater" ,r-scater)
11971 ("r-scran" ,r-scran)
11972 ("r-seurat" ,r-seurat)
11973 ("r-singlecellexperiment" ,r-singlecellexperiment)
11974 ("r-stringr" ,r-stringr)
11975 ("r-yaml" ,r-yaml)))
11976 (home-page "https://bioinformatics.mdc-berlin.de/pigx/")
11977 (synopsis "Analysis pipeline for single-cell RNA sequencing experiments")
11978 (description "PiGX scRNAseq is an analysis pipeline for preprocessing and
11979 quality control for single cell RNA sequencing experiments. The inputs are
11980 read files from the sequencing experiment, and a configuration file which
11981 describes the experiment. It produces processed files for downstream analysis
11982 and interactive quality reports. The pipeline is designed to work with UMI
11984 (license license:gpl3+)))
11986 (define-public pigx
11992 (uri (string-append "https://github.com/BIMSBbioinfo/pigx/"
11993 "releases/download/v" version
11994 "/pigx-" version ".tar.gz"))
11997 "1i5njdy1clj5ncw45d16p7mwmqvb1ilikl9n797pxklc3f4s7mq7"))))
11998 (build-system gnu-build-system)
12000 `(("python" ,python)
12001 ("pigx-bsseq" ,pigx-bsseq)
12002 ("pigx-chipseq" ,pigx-chipseq)
12003 ("pigx-rnaseq" ,pigx-rnaseq)
12004 ("pigx-scrnaseq" ,pigx-scrnaseq)))
12005 (home-page "https://bioinformatics.mdc-berlin.de/pigx/")
12006 (synopsis "Analysis pipelines for genomics")
12007 (description "PiGx is a collection of genomics pipelines. It includes the
12008 following pipelines:
12011 @item PiGx BSseq for raw fastq read data of bisulfite experiments
12012 @item PiGx RNAseq for RNAseq samples
12013 @item PiGx scRNAseq for single cell dropseq analysis
12014 @item PiGx ChIPseq for reads from ChIPseq experiments
12017 All pipelines are easily configured with a simple sample sheet and a
12018 descriptive settings file. The result is a set of comprehensive, interactive
12019 HTML reports with interesting findings about your samples.")
12020 (license license:gpl3+)))
12022 (define-public genrich
12028 (uri (git-reference
12029 (url "https://github.com/jsh58/Genrich")
12030 (commit (string-append "v" version))))
12031 (file-name (git-file-name name version))
12034 "0x0q6z0208n3cxzqjla4rgjqpyqgwpmz27852lcvzkzaigymq4zp"))))
12035 (build-system gnu-build-system)
12037 `(#:tests? #f ; there are none
12039 (modify-phases %standard-phases
12040 (delete 'configure)
12042 (lambda* (#:key outputs #:allow-other-keys)
12043 (install-file "Genrich" (string-append (assoc-ref outputs "out") "/bin"))
12047 (home-page "https://github.com/jsh58/Genrich")
12048 (synopsis "Detecting sites of genomic enrichment")
12049 (description "Genrich is a peak-caller for genomic enrichment
12050 assays (e.g. ChIP-seq, ATAC-seq). It analyzes alignment files generated
12051 following the assay and produces a file detailing peaks of significant
12053 (license license:expat)))
12055 (define-public mantis
12056 (let ((commit "4ffd171632c2cb0056a86d709dfd2bf21bc69b84")
12060 (version (git-version "0" revision commit))
12063 (uri (git-reference
12064 (url "https://github.com/splatlab/mantis")
12066 (file-name (git-file-name name version))
12069 "0iqbr0dhmlc8mzpirmm2s4pkzkwdgrcx50yx6cv3wlr2qi064p55"))))
12070 (build-system cmake-build-system)
12071 (arguments '(#:tests? #f)) ; there are none
12073 `(("sdsl-lite" ,sdsl-lite)
12074 ("openssl" ,openssl)
12076 (home-page "https://github.com/splatlab/mantis")
12077 (synopsis "Large-scale sequence-search index data structure")
12078 (description "Mantis is a space-efficient data structure that can be
12079 used to index thousands of raw-read genomics experiments and facilitate
12080 large-scale sequence searches on those experiments. Mantis uses counting
12081 quotient filters instead of Bloom filters, enabling rapid index builds and
12082 queries, small indexes, and exact results, i.e., no false positives or
12083 negatives. Furthermore, Mantis is also a colored de Bruijn graph
12084 representation, so it supports fast graph traversal and other topological
12085 analyses in addition to large-scale sequence-level searches.")
12086 ;; uses __uint128_t and inline assembly
12087 (supported-systems '("x86_64-linux"))
12088 (license license:bsd-3))))
12090 (define-public sjcount
12091 ;; There is no tag for version 3.2, nor is there a release archive.
12092 (let ((commit "292d3917cadb3f6834c81e509c30e61cd7ead6e5")
12096 (version (git-version "3.2" revision commit))
12099 (uri (git-reference
12100 (url "https://github.com/pervouchine/sjcount-full")
12102 (file-name (string-append name "-" version "-checkout"))
12105 "0gdgj35j249f04rqgq8ymcc1xg1vi9kzbajnjqpaq2wpbh8bl234"))))
12106 (build-system gnu-build-system)
12108 `(#:tests? #f ; requires a 1.4G test file
12110 (list (string-append "SAMTOOLS_DIR="
12111 (assoc-ref %build-inputs "samtools")
12114 (modify-phases %standard-phases
12115 (replace 'configure
12116 (lambda* (#:key inputs #:allow-other-keys)
12117 (substitute* "makefile"
12118 (("-I \\$\\{SAMTOOLS_DIR\\}")
12119 (string-append "-I" (assoc-ref inputs "samtools")
12120 "/include/samtools"))
12121 (("-lz ") "-lz -lpthread "))
12124 (lambda* (#:key outputs #:allow-other-keys)
12125 (for-each (lambda (tool)
12127 (string-append (assoc-ref outputs "out")
12129 '("j_count" "b_count" "sjcount"))
12132 `(("samtools" ,samtools-0.1)
12134 (home-page "https://github.com/pervouchine/sjcount-full/")
12135 (synopsis "Annotation-agnostic splice junction counting pipeline")
12136 (description "Sjcount is a utility for fast quantification of splice
12137 junctions in RNA-seq data. It is annotation-agnostic and offset-aware. This
12138 version does count multisplits.")
12139 (license license:gpl3+))))
12141 (define-public minimap2
12148 (uri (string-append "https://github.com/lh3/minimap2/"
12149 "releases/download/v" version "/"
12150 "minimap2-" version ".tar.bz2"))
12153 "0hi7i9pzxhvjj44khzzzj1lrn5gb5837arr4wgln7k1k5n4ci2mn"))
12154 (patches (search-patches "minimap2-aarch64-support.patch"))))
12155 (build-system gnu-build-system)
12157 `(#:tests? #f ; there are none
12159 (list (string-append "CC=" ,(cc-for-target))
12160 (let ((system ,(or (%current-target-system)
12161 (%current-system))))
12163 ((string-prefix? "x86_64" system)
12165 ((or (string-prefix? "i586" system)
12166 (string-prefix? "i686" system))
12168 ((string-prefix? "armhf" system)
12170 ((string-prefix? "aarch64" system)
12174 (modify-phases %standard-phases
12175 (delete 'configure)
12177 (lambda* (#:key outputs #:allow-other-keys)
12178 (let* ((out (assoc-ref outputs "out"))
12179 (bin (string-append out "/bin"))
12180 (man (string-append out "/share/man/man1")))
12181 (install-file "minimap2" bin)
12183 (install-file "minimap2.1" man))
12187 (home-page "https://lh3.github.io/minimap2/")
12188 (synopsis "Pairwise aligner for genomic and spliced nucleotide sequences")
12189 (description "Minimap2 is a versatile sequence alignment program that
12190 aligns DNA or mRNA sequences against a large reference database. Typical use
12194 @item mapping PacBio or Oxford Nanopore genomic reads to the human genome;
12195 @item finding overlaps between long reads with error rate up to ~15%;
12196 @item splice-aware alignment of PacBio Iso-Seq or Nanopore cDNA or Direct RNA
12197 reads against a reference genome;
12198 @item aligning Illumina single- or paired-end reads;
12199 @item assembly-to-assembly alignment;
12200 @item full-genome alignment between two closely related species with
12201 divergence below ~15%.
12203 (license license:expat)))
12205 (define-public miniasm
12211 (uri (git-reference
12212 (url "https://github.com/lh3/miniasm")
12213 (commit (string-append "v" version))))
12214 (file-name (git-file-name name version))
12217 "04dv5wv8bhsw1imxwyd438bnn9kby7svp44nbcz8lsadzjjci5gs"))))
12218 (build-system gnu-build-system)
12222 `(#:tests? #f ; There are no tests.
12224 (modify-phases %standard-phases
12225 (delete 'configure)
12227 (lambda* (#:key inputs outputs #:allow-other-keys)
12228 (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
12229 (install-file "miniasm" bin)
12230 (install-file "minidot" bin)
12232 (home-page "https://github.com/lh3/miniasm")
12233 (synopsis "Ultrafast de novo assembly for long noisy reads")
12234 (description "Miniasm is a very fast OLC-based de novo assembler for noisy
12235 long reads. It takes all-vs-all read self-mappings (typically by minimap) as
12236 input and outputs an assembly graph in the GFA format. Different from
12237 mainstream assemblers, miniasm does not have a consensus step. It simply
12238 concatenates pieces of read sequences to generate the final unitig sequences.
12239 Thus the per-base error rate is similar to the raw input reads.")
12240 (license license:expat)))
12242 (define-public bandage
12249 (uri (git-reference
12250 (url "https://github.com/rrwick/Bandage")
12251 (commit (string-append "v" version))))
12252 (file-name (git-file-name name version))
12254 (base32 "1bbsn5f5x8wlspg4pbibqz6m5vin8c19nl224f3z3km0pkc97rwv"))))
12255 (build-system qt-build-system)
12258 (modify-phases %standard-phases
12259 (replace 'configure
12261 (invoke "qmake" "Bandage.pro")))
12263 (lambda* (#:key tests? #:allow-other-keys)
12265 (substitute* "tests/bandage_command_line_tests.sh"
12266 (("^bandagepath=.*")
12267 (string-append "bandagepath=" (getcwd) "/Bandage\n")))
12268 (with-directory-excursion "tests"
12269 (setenv "XDG_RUNTIME_DIR" (getcwd))
12270 (invoke "./bandage_command_line_tests.sh")))
12273 (lambda* (#:key outputs #:allow-other-keys)
12274 (let ((out (assoc-ref outputs "out")))
12275 (install-file "Bandage" (string-append out "/bin"))
12278 `(("qtbase" ,qtbase)
12281 `(("imagemagick" ,imagemagick)))
12282 (home-page "https://rrwick.github.io/Bandage/")
12284 "Bioinformatics Application for Navigating De novo Assembly Graphs Easily")
12285 (description "Bandage is a program for visualising de novo assembly graphs.
12286 It allows users to interact with the assembly graphs made by de novo assemblers
12287 such as Velvet, SPAdes, MEGAHIT and others. De novo assembly graphs contain not
12288 only assembled contigs but also the connections between those contigs, which
12289 were previously not easily accessible. Bandage visualises assembly graphs, with
12290 connections, using graph layout algorithms. Nodes in the drawn graph, which
12291 represent contigs, can be automatically labelled with their ID, length or depth.
12292 Users can interact with the graph by moving, labelling and colouring nodes.
12293 Sequence information can also be extracted directly from the graph viewer. By
12294 displaying connections between contigs, Bandage opens up new possibilities for
12295 analysing and improving de novo assemblies that are not possible by looking at
12297 (license (list license:gpl2+ ; bundled ogdf
12300 (define-public r-circus
12307 (uri (git-reference
12308 (url "https://github.com/BIMSBbioinfo/ciRcus")
12309 (commit (string-append "v" version))))
12310 (file-name (git-file-name name version))
12313 "0jhjn3ilb057hbf6yzrihj13ifxxs32y7nkby8l3lkm28dg4p97h"))))
12314 (build-system r-build-system)
12316 `(("r-annotationdbi" ,r-annotationdbi)
12317 ("r-annotationhub" ,r-annotationhub)
12318 ("r-biomart" ,r-biomart)
12319 ("r-data-table" ,r-data-table)
12321 ("r-genomicfeatures" ,r-genomicfeatures)
12322 ("r-genomicranges" ,r-genomicranges)
12323 ("r-ggplot2" ,r-ggplot2)
12325 ("r-iranges" ,r-iranges)
12326 ("r-rcolorbrewer" ,r-rcolorbrewer)
12327 ("r-rmysql" ,r-rmysql)
12328 ("r-s4vectors" ,r-s4vectors)
12329 ("r-stringr" ,r-stringr)
12330 ("r-summarizedexperiment" ,r-summarizedexperiment)))
12332 `(("r-knitr" ,r-knitr)))
12333 (home-page "https://github.com/BIMSBbioinfo/ciRcus")
12334 (synopsis "Annotation, analysis and visualization of circRNA data")
12335 (description "Circus is an R package for annotation, analysis and
12336 visualization of circRNA data. Users can annotate their circRNA candidates
12337 with host genes, gene featrues they are spliced from, and discriminate between
12338 known and yet unknown splice junctions. Circular-to-linear ratios of circRNAs
12339 can be calculated, and a number of descriptive plots easily generated.")
12340 (license license:artistic2.0)))
12342 (define-public gffread
12343 ;; We cannot use the tagged release because it is not in sync with gclib.
12344 ;; See https://github.com/gpertea/gffread/issues/26
12345 (let ((commit "ba7535fcb3cea55a6e5a491d916e93b454e87fd0")
12349 (version (git-version "0.9.12" revision commit))
12353 (uri (git-reference
12354 (url "https://github.com/gpertea/gffread")
12356 (file-name (git-file-name name version))
12359 "1dl2nbcg96lxpd0drg48ssa8343nf7pw9s9mkrc4mjjmfwsin3ki"))))
12360 (build-system gnu-build-system)
12362 `(#:tests? #f ; no check target
12364 (list "GCLDIR=gclib")
12366 (modify-phases %standard-phases
12367 (delete 'configure)
12368 (add-after 'unpack 'copy-gclib-source
12369 (lambda* (#:key inputs #:allow-other-keys)
12371 (copy-recursively (assoc-ref inputs "gclib-source") "gclib")
12373 ;; There is no install target
12375 (lambda* (#:key outputs #:allow-other-keys)
12376 (let* ((out (assoc-ref outputs "out"))
12377 (bin (string-append out "/bin")))
12378 (install-file "gffread" bin))
12382 ,(let ((version "0.10.3")
12383 (commit "54917d0849c1e83cfb057b5f712e5cb6a35d948f")
12387 (uri (git-reference
12388 (url "https://github.com/gpertea/gclib")
12390 (file-name (git-file-name "gclib" version))
12393 "0b51lc0b8syrv7186fd7n8f15rwnf264qgfmm2palrwks1px24mr")))))))
12394 (home-page "https://github.com/gpertea/gffread/")
12395 (synopsis "Parse and convert GFF/GTF files")
12397 "This package provides a GFF/GTF file parsing utility providing format
12398 conversions, region filtering, FASTA sequence extraction and more.")
12399 ;; gffread is under Expat, but gclib is under Artistic 2.0
12400 (license (list license:expat
12401 license:artistic2.0)))))
12403 (define-public find-circ
12404 ;; The last release was in 2015. The license was clarified in 2017, so we
12405 ;; take the latest commit.
12406 (let ((commit "8655dca54970fcf7e92e22fbf57e1188724dda7d")
12410 (version (git-version "1.2" revision commit))
12414 (uri (git-reference
12415 (url "https://github.com/marvin-jens/find_circ")
12417 (file-name (git-file-name name version))
12420 "0p77pbqbclqr4srms34y1b9b4njybfpjiknc11ki84f3p8skb3cg"))))
12421 (build-system gnu-build-system)
12423 `(#:tests? #f ; there are none
12425 ;; There is no actual build system.
12426 (modify-phases %standard-phases
12427 (delete 'configure)
12430 (lambda* (#:key outputs #:allow-other-keys)
12431 (let* ((out (assoc-ref outputs "out"))
12432 (bin (string-append out "/bin"))
12433 (path (getenv "PYTHONPATH")))
12434 (for-each (lambda (script)
12435 (install-file script bin)
12436 (wrap-program (string-append bin "/" script)
12437 `("PYTHONPATH" ":" prefix (,path))))
12442 "unmapped2anchors.py")))
12445 `(("python2" ,python-2)
12446 ("python2-pysam" ,python2-pysam)
12447 ("python2-numpy" ,python2-numpy)))
12448 (home-page "https://github.com/marvin-jens/find_circ")
12449 (synopsis "circRNA detection from RNA-seq reads")
12450 (description "This package provides tools to detect head-to-tail
12451 spliced (back-spliced) sequencing reads, indicative of circular RNA (circRNA)
12453 (license license:gpl3))))
12455 (define-public python-scanpy
12457 (name "python-scanpy")
12462 (uri (pypi-uri "scanpy" version))
12465 "0s2b6cvaigx4wzw3850qb93sjwwxbzh22kpbp498zklc5rjpbz4l"))))
12466 (build-system python-build-system)
12469 (modify-phases %standard-phases
12471 (lambda* (#:key inputs #:allow-other-keys)
12472 ;; These tests require Internet access.
12473 (delete-file-recursively "scanpy/tests/notebooks")
12474 (delete-file "scanpy/tests/test_clustering.py")
12475 (delete-file "scanpy/tests/test_datasets.py")
12477 ;; TODO: I can't get the plotting tests to work, even with Xvfb.
12478 (delete-file "scanpy/tests/test_plotting.py")
12479 (delete-file "scanpy/tests/test_preprocessing.py")
12480 (delete-file "scanpy/tests/test_read_10x.py")
12482 (setenv "PYTHONPATH"
12483 (string-append (getcwd) ":"
12484 (getenv "PYTHONPATH")))
12488 `(("python-anndata" ,python-anndata)
12489 ("python-h5py" ,python-h5py)
12490 ("python-igraph" ,python-igraph)
12491 ("python-joblib" ,python-joblib)
12492 ("python-legacy-api-wrap" ,python-legacy-api-wrap)
12493 ("python-louvain" ,python-louvain)
12494 ("python-matplotlib" ,python-matplotlib)
12495 ("python-natsort" ,python-natsort)
12496 ("python-networkx" ,python-networkx)
12497 ("python-numba" ,python-numba)
12498 ("python-packaging" ,python-packaging)
12499 ("python-pandas" ,python-pandas)
12500 ("python-patsy" ,python-patsy)
12501 ("python-scikit-learn" ,python-scikit-learn)
12502 ("python-scipy" ,python-scipy)
12503 ("python-seaborn" ,python-seaborn)
12504 ("python-statsmodels" ,python-statsmodels)
12505 ("python-tables" ,python-tables)
12506 ("python-tqdm" ,python-tqdm)
12507 ("python-umap-learn" ,python-umap-learn)))
12509 `(("python-pytest" ,python-pytest)
12510 ("python-setuptools-scm" ,python-setuptools-scm)))
12511 (home-page "https://github.com/theislab/scanpy")
12512 (synopsis "Single-Cell Analysis in Python.")
12513 (description "Scanpy is a scalable toolkit for analyzing single-cell gene
12514 expression data. It includes preprocessing, visualization, clustering,
12515 pseudotime and trajectory inference and differential expression testing. The
12516 Python-based implementation efficiently deals with datasets of more than one
12518 (license license:bsd-3)))
12520 (define-public python-bbknn
12522 (name "python-bbknn")
12527 (uri (pypi-uri "bbknn" version))
12530 "1jbsh01f57zj4bhvjr3jh4532zznqd6nccmgrl3qi9gnhkf7c4y0"))))
12531 (build-system python-build-system)
12533 `(#:tests? #f)) ; TODO: Enable after migration to scikit-learn.
12535 `(("python-annoy" ,python-annoy)
12536 ("python-cython" ,python-cython)
12537 ("python-numpy" ,python-numpy)
12538 ("python-scipy" ,python-scipy)
12539 ("python-umap-learn" ,python-umap-learn)))
12540 (home-page "https://github.com/Teichlab/bbknn")
12541 (synopsis "Batch balanced KNN")
12542 (description "BBKNN is a batch effect removal tool that can be directly
12543 used in the Scanpy workflow. It serves as an alternative to
12544 @code{scanpy.api.pp.neighbors()}, with both functions creating a neighbour
12545 graph for subsequent use in clustering, pseudotime and UMAP visualisation. If
12546 technical artifacts are present in the data, they will make it challenging to
12547 link corresponding cell types across different batches. BBKNN actively
12548 combats this effect by splitting your data into batches and finding a smaller
12549 number of neighbours for each cell within each of the groups. This helps
12550 create connections between analogous cells in different batches without
12551 altering the counts or PCA space.")
12552 (license license:expat)))
12554 (define-public python-drep
12556 (name "python-drep")
12561 (uri (pypi-uri "drep" version))
12564 "08vk0x6v5c5n7afgd5pcjhsvb424absypxy22hw1cm1n9kirbi77"))))
12565 (build-system python-build-system)
12567 `(("python-biopython" ,python-biopython)
12568 ("python-matplotlib" ,python-matplotlib)
12569 ("python-numpy" ,python-numpy)
12570 ("python-pandas" ,python-pandas)
12571 ("python-pytest" ,python-pytest)
12572 ("python-scikit-learn" ,python-scikit-learn)
12573 ("python-seaborn" ,python-seaborn)
12574 ("python-tqdm" ,python-tqdm)))
12575 (home-page "https://github.com/MrOlm/drep")
12576 (synopsis "De-replication of microbial genomes assembled from multiple samples")
12578 "dRep is a Python program for rapidly comparing large numbers of genomes.
12579 dRep can also \"de-replicate\" a genome set by identifying groups of highly
12580 similar genomes and choosing the best representative genome for each genome
12582 (license license:expat)))
12584 (define-public instrain
12591 (uri (pypi-uri "inStrain" version))
12594 "0ykqlpf6yz4caihsaz3ys00cyvlr7wdj4s9a8rh56q5r8xf80ic0"))))
12595 (build-system python-build-system)
12598 (modify-phases %standard-phases
12599 (add-after 'unpack 'patch-relative-imports
12601 (substitute* "docker/run_instrain.py"
12604 (("from job_utils")
12605 "from .job_utils")))))))
12607 `(("python-biopython" ,python-biopython)
12608 ("python-boto3" ,python-boto3)
12609 ("python-h5py" ,python-h5py)
12610 ("python-lmfit" ,python-lmfit)
12611 ("python-matplotlib" ,python-matplotlib)
12612 ("python-networkx" ,python-networkx)
12613 ("python-numba" ,python-numba)
12614 ("python-numpy" ,python-numpy)
12615 ("python-pandas" ,python-pandas)
12616 ("python-psutil" ,python-psutil)
12617 ("python-pysam" ,python-pysam)
12618 ("python-scikit-learn" ,python-scikit-learn)
12619 ("python-seaborn" ,python-seaborn)
12620 ("python-tqdm" ,python-tqdm)
12621 ;; drep is needed for deprecated plot utilities
12622 ("python-drep" ,python-drep)))
12624 `(("python-pytest" ,python-pytest)))
12625 (home-page "https://github.com/MrOlm/inStrain")
12626 (synopsis "Calculation of strain-level metrics")
12628 "inStrain is a Python program for analysis of co-occurring genome
12629 populations from metagenomes that allows highly accurate genome comparisons,
12630 analysis of coverage, microdiversity, and linkage, and sensitive SNP detection
12631 with gene localization and synonymous non-synonymous identification.")
12632 ;; The tool itself says that the license is "MIT", but the repository
12633 ;; contains a LICENSE file with the GPLv3.
12634 ;; See https://github.com/MrOlm/inStrain/issues/51
12635 (license license:expat)))
12637 (define-public gffcompare
12638 (let ((commit "be56ef4349ea3966c12c6397f85e49e047361c41")
12641 (name "gffcompare")
12642 (version (git-version "0.10.15" revision commit))
12646 (uri (git-reference
12647 (url "https://github.com/gpertea/gffcompare/")
12649 (file-name (git-file-name name version))
12651 (base32 "0cp5qpxdhw4mxpya5dld8wi3jk00zyklm6rcri426wydinrnfmkg"))))
12652 (build-system gnu-build-system)
12654 `(#:tests? #f ; no check target
12656 (modify-phases %standard-phases
12657 (delete 'configure)
12658 (add-before 'build 'copy-gclib-source
12659 (lambda* (#:key inputs #:allow-other-keys)
12662 (assoc-ref inputs "gclib-source") "../gclib")
12665 (lambda* (#:key outputs #:allow-other-keys)
12666 (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
12667 (install-file "gffcompare" bin)
12670 `(("gclib-source" ; see 'README.md' of gffcompare
12671 ,(let ((commit "54917d0849c1e83cfb057b5f712e5cb6a35d948f")
12674 (version (git-version "0.10.3" revision commit)))
12677 (uri (git-reference
12678 (url "https://github.com/gpertea/gclib/")
12680 (file-name (git-file-name name version))
12682 (base32 "0b51lc0b8syrv7186fd7n8f15rwnf264qgfmm2palrwks1px24mr")))))))
12683 (home-page "https://github.com/gpertea/gffcompare/")
12684 (synopsis "Tool for comparing or classifing transcripts of RNA-Seq")
12686 "@code{gffcompare} is a tool that can:
12688 @item compare and evaluate the accuracy of RNA-Seq transcript assemblers
12689 (Cufflinks, Stringtie);
12690 @item collapse (merge) duplicate transcripts from multiple GTF/GFF3 files (e.g.
12691 resulted from assembly of different samples);
12692 @item classify transcripts from one or multiple GTF/GFF3 files as they relate to
12693 reference transcripts provided in a annotation file (also in GTF/GFF3 format).
12697 license:expat ;license for gffcompare
12698 license:artistic2.0))))) ;license for gclib
12700 (define-public intervaltree
12701 (let ((commit "b90527f9e6d51cd36ecbb50429e4524d3a418ea5"))
12703 (name "intervaltree")
12704 (version (git-version "0.0.0" "1" commit))
12708 (uri (git-reference
12709 (url "https://github.com/ekg/intervaltree/")
12711 (file-name (git-file-name name version))
12713 (base32 "0rgv6q5fl4x5d74n6p5wvdna6zmbdbqpb4jqqh6vq3670gn08xad"))))
12714 (build-system gnu-build-system)
12716 '(#:tests? #f ; No tests.
12717 #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
12720 (modify-phases %standard-phases
12721 (delete 'configure)))) ; There is no configure phase.
12722 (home-page "https://github.com/ekg/intervaltree")
12723 (synopsis "Minimal C++ interval tree implementation")
12724 (description "An interval tree can be used to efficiently find a set of
12725 numeric intervals overlapping or containing another interval. This library
12726 provides a basic implementation of an interval tree using C++ templates,
12727 allowing the insertion of arbitrary types into the tree.")
12728 (license license:expat))))
12730 (define-public python-intervaltree
12732 (name "python-intervaltree")
12737 (uri (pypi-uri "intervaltree" version))
12740 "0wz234g6irlm4hivs2qzmnywk0ss06ckagwh15nflkyb3p462kyb"))))
12741 (build-system python-build-system)
12744 (modify-phases %standard-phases
12745 ;; pytest seems to have a check to make sure the user is testing
12746 ;; their checked-out code and not an installed, potentially
12747 ;; out-of-date copy. This is harmless here, since we just installed
12748 ;; the package, so we disable the check to avoid skipping tests
12750 (add-before 'check 'import-mismatch-error-workaround
12752 (setenv "PY_IGNORE_IMPORTMISMATCH" "1")
12755 `(("python-sortedcontainers" ,python-sortedcontainers)))
12757 `(("python-pytest" ,python-pytest)))
12758 (home-page "https://github.com/chaimleib/intervaltree")
12759 (synopsis "Editable interval tree data structure")
12761 "This package provides a mutable, self-balancing interval tree
12762 implementation for Python. Queries may be by point, by range overlap, or by
12763 range envelopment. This library was designed to allow tagging text and time
12764 intervals, where the intervals include the lower bound but not the upper
12766 (license license:asl2.0)))
12768 (define-public python-pypairix
12770 (name "python-pypairix")
12772 ;; The tarball on pypi does not include the makefile to build the
12777 (uri (git-reference
12778 (url "https://github.com/4dn-dcic/pairix")
12780 (file-name (git-file-name name version))
12783 "1snr3lrmsld8sy77ng6ba6wcmd33xjccf1l2f3m6pi29xis9nd6p"))))
12784 (build-system python-build-system)
12787 (modify-phases %standard-phases
12788 (add-before 'build 'build-programs
12789 (lambda _ (invoke "make")))
12790 (add-after 'install 'install-programs
12791 (lambda* (#:key outputs #:allow-other-keys)
12792 (copy-recursively "bin" (string-append
12793 (assoc-ref outputs "out")
12798 (home-page "https://github.com/4dn-dcic/pairix")
12799 (synopsis "Support for querying pairix-indexed bgzipped text files")
12801 "Pypairix is a Python module for fast querying on a pairix-indexed
12802 bgzipped text file that contains a pair of genomic coordinates per line.")
12803 (license license:expat)))
12805 (define-public python-pyfaidx
12807 (name "python-pyfaidx")
12812 (uri (pypi-uri "pyfaidx" version))
12815 "038xi3a6zvrxbyyfpp64ka8pcjgsdq4fgw9cl5lpxbvmm1bzzw2q"))))
12816 (build-system python-build-system)
12818 `(("python-six" ,python-six)))
12819 (home-page "http://mattshirley.com")
12820 (synopsis "Random access to fasta subsequences")
12822 "This package provides procedures for efficient pythonic random access to
12823 fasta subsequences.")
12824 (license license:bsd-3)))
12826 (define-public python2-pyfaidx
12827 (package-with-python2 python-pyfaidx))
12829 (define-public python-cooler
12831 (name "python-cooler")
12836 (uri (pypi-uri "cooler" version))
12839 "01g6gqix9ba27sappz6nfyiwabzrlf8i5fn8kwcz8ra356cq9crp"))))
12840 (build-system python-build-system)
12842 `(("python-asciitree" ,python-asciitree)
12843 ("python-biopython" ,python-biopython)
12844 ("python-click" ,python-click)
12845 ("python-cytoolz" ,python-cytoolz)
12846 ("python-dask" ,python-dask)
12847 ("python-h5py" ,python-h5py)
12848 ("python-multiprocess" ,python-multiprocess)
12849 ("python-numpy" ,python-numpy)
12850 ("python-pandas" ,python-pandas)
12851 ("python-pyfaidx" ,python-pyfaidx)
12852 ("python-pypairix" ,python-pypairix)
12853 ("python-pysam" ,python-pysam)
12854 ("python-pyyaml" ,python-pyyaml)
12855 ("python-scipy" ,python-scipy)
12856 ("python-simplejson" ,python-simplejson)))
12858 `(("python-mock" ,python-mock)
12859 ("python-pytest" ,python-pytest)))
12860 (home-page "https://github.com/mirnylab/cooler")
12861 (synopsis "Sparse binary format for genomic interaction matrices")
12863 "Cooler is a support library for a sparse, compressed, binary persistent
12864 storage format, called @code{cool}, used to store genomic interaction data,
12865 such as Hi-C contact matrices.")
12866 (license license:bsd-3)))
12868 (define-public python-hicmatrix
12870 (name "python-hicmatrix")
12874 ;; Version 12 is not available on pypi.
12876 (uri (git-reference
12877 (url "https://github.com/deeptools/HiCMatrix")
12879 (file-name (git-file-name name version))
12882 "1xhdyx16f3brgxgxybixdi64ki8nbbkq5vk4h9ahi11pzpjfn1pj"))))
12883 (build-system python-build-system)
12886 (modify-phases %standard-phases
12887 (add-after 'unpack 'relax-requirements
12889 (substitute* '("requirements.txt"
12891 (("cooler *=+ *0.8.5")
12895 `(("python-cooler" ,python-cooler)
12896 ("python-intervaltree" ,python-intervaltree)
12897 ("python-numpy" ,python-numpy)
12898 ("python-pandas" ,python-pandas)
12899 ("python-scipy" ,python-scipy)
12900 ("python-tables" ,python-tables)))
12901 (home-page "https://github.com/deeptools/HiCMatrix/")
12902 (synopsis "HiCMatrix class for HiCExplorer and pyGenomeTracks")
12904 "This helper package implements the @code{HiCMatrix} class for
12905 the HiCExplorer and pyGenomeTracks packages.")
12906 (license license:gpl3+)))
12908 (define-public python-hicexplorer
12910 (name "python-hicexplorer")
12914 ;; The latest version is not available on Pypi.
12916 (uri (git-reference
12917 (url "https://github.com/deeptools/HiCExplorer")
12919 (file-name (git-file-name name version))
12922 "0q5gpbzmrkvygqgw524q36b4nrivcmyi5v194vsx0qw7b3gcmq08"))))
12923 (build-system python-build-system)
12926 (modify-phases %standard-phases
12927 (add-after 'unpack 'loosen-up-requirements
12929 (substitute* "setup.py"
12933 `(("python-biopython" ,python-biopython)
12934 ("python-configparser" ,python-configparser)
12935 ("python-cooler" ,python-cooler)
12936 ("python-future" ,python-future)
12937 ("python-intervaltree" ,python-intervaltree)
12938 ("python-jinja2" ,python-jinja2)
12939 ("python-matplotlib" ,python-matplotlib)
12940 ("python-numpy" ,python-numpy)
12941 ("python-pandas" ,python-pandas)
12942 ("python-pybigwig" ,python-pybigwig)
12943 ("python-pysam" ,python-pysam)
12944 ("python-scipy" ,python-scipy)
12945 ("python-six" ,python-six)
12946 ("python-tables" ,python-tables)
12947 ("python-unidecode" ,python-unidecode)))
12948 (home-page "https://hicexplorer.readthedocs.io")
12949 (synopsis "Process, analyze and visualize Hi-C data")
12951 "HiCExplorer is a powerful and easy to use set of tools to process,
12952 normalize and visualize Hi-C data. HiCExplorer facilitates the creation of
12953 contact matrices, correction of contacts, TAD detection, A/B compartments,
12954 merging, reordering or chromosomes, conversion from different formats
12955 including cooler and detection of long-range contacts. Moreover, it allows
12956 the visualization of multiple contact matrices along with other types of data
12957 like genes, compartments, ChIP-seq coverage tracks (and in general any type of
12958 genomic scores), long range contacts and the visualization of viewpoints.")
12959 (license license:gpl3)))
12961 (define-public python-pygenometracks
12963 (name "python-pygenometracks")
12968 (uri (pypi-uri "pyGenomeTracks" version))
12971 "16laa0wnf4qn9fb9ych4w1vqhqwjss70v0y0f6wp4gwqfrlgac0f"))))
12972 (build-system python-build-system)
12974 `(#:tests? #f ; there are none
12976 (modify-phases %standard-phases
12977 (add-after 'unpack 'relax-requirements
12979 (substitute* "setup.py"
12980 (("matplotlib ==3.1.1")
12981 "matplotlib >=3.1.1"))
12984 `(("python-future" ,python-future)
12985 ("python-gffutils" ,python-gffutils)
12986 ("python-hicmatrix" ,python-hicmatrix)
12987 ("python-intervaltree" ,python-intervaltree)
12988 ("python-matplotlib" ,python-matplotlib)
12989 ("python-numpy" ,python-numpy)
12990 ("python-pybigwig" ,python-pybigwig)
12991 ("python-pysam" ,python-pysam)
12992 ("python-tqdm" ,python-tqdm)))
12994 `(("python-pytest" ,python-pytest)))
12995 (home-page "https://pygenometracks.readthedocs.io")
12996 (synopsis "Program and library to plot beautiful genome browser tracks")
12998 "This package aims to produce high-quality genome browser tracks that
12999 are highly customizable. Currently, it is possible to plot: bigwig, bed (many
13000 options), bedgraph, links (represented as arcs), and Hi-C matrices.
13001 pyGenomeTracks can make plots with or without Hi-C data.")
13002 (license license:gpl3+)))
13004 (define-public python-hic2cool
13006 (name "python-hic2cool")
13011 (uri (pypi-uri "hic2cool" version))
13014 "0xy6mhfns2lzib1kcr6419jjp6pmh0qx8z8na55lmiwn0ds8q9cl"))))
13015 (build-system python-build-system)
13016 (arguments '(#:tests? #f)) ; no tests included
13018 `(("python-cooler" ,python-cooler)))
13019 (home-page "https://github.com/4dn-dcic/hic2cool")
13020 (synopsis "Converter for .hic and .cool files")
13022 "This package provides a converter between @code{.hic} files (from
13023 juicer) and single-resolution or multi-resolution @code{.cool} files (for
13024 cooler). Both @code{hic} and @code{cool} files describe Hi-C contact
13026 (license license:expat)))
13028 (define-public r-pore
13036 (string-append "mirror://sourceforge/rpore/" version
13037 "/poRe_" version ".tar.gz"))
13039 (base32 "0pih9nljbv8g4x8rkk29i7aqq681b782r5s5ynp4nw9yzqnmmksv"))))
13040 (properties `((upstream-name . "poRe")))
13041 (build-system r-build-system)
13043 `(("r-bit64" ,r-bit64)
13044 ("r-data-table" ,r-data-table)
13045 ("r-rhdf5" ,r-rhdf5)
13046 ("r-shiny" ,r-shiny)
13047 ("r-svdialogs" ,r-svdialogs)))
13048 (home-page "https://sourceforge.net/projects/rpore/")
13049 (synopsis "Visualize Nanopore sequencing data")
13051 "This package provides graphical user interfaces to organize and visualize Nanopore
13053 ;; This is free software but the license variant is unclear:
13054 ;; <https://github.com/mw55309/poRe_docs/issues/10>.
13055 (license license:bsd-3)))
13057 (define-public r-xbioc
13058 (let ((revision "1")
13059 (commit "6ff0670a37ab3036aaf1d94aa4b208310946b0b5"))
13062 (version (git-version "0.1.16" revision commit))
13065 (uri (git-reference
13066 (url "https://github.com/renozao/xbioc")
13068 (file-name (git-file-name name version))
13071 "0w8bsq5myiwkfhh83nm6is5ichiyvwa1axx2szvxnzq39x6knf66"))))
13072 (build-system r-build-system)
13074 `(("r-annotationdbi" ,r-annotationdbi)
13075 ("r-assertthat" ,r-assertthat)
13076 ("r-biobase" ,r-biobase)
13077 ("r-biocmanager" ,r-biocmanager)
13078 ("r-digest" ,r-digest)
13079 ("r-pkgmaker" ,r-pkgmaker)
13081 ("r-reshape2" ,r-reshape2)
13082 ("r-stringr" ,r-stringr)))
13083 (home-page "https://github.com/renozao/xbioc/")
13084 (synopsis "Extra base functions for Bioconductor")
13085 (description "This package provides extra utility functions to perform
13086 common tasks in the analysis of omics data, leveraging and enhancing features
13087 provided by Bioconductor packages.")
13088 (license license:gpl3+))))
13090 (define-public r-cssam
13091 (let ((revision "1")
13092 (commit "9ec58c982fa551af0d80b1a266890d92954833f2"))
13095 (version (git-version "1.4" revision commit))
13098 (uri (git-reference
13099 (url "https://github.com/shenorrLab/csSAM")
13101 (file-name (git-file-name name version))
13104 "128syf9v39gk0z3ip000qpsjbg6l1siyq6c8b0hz41dzg5achyb3"))))
13105 (build-system r-build-system)
13107 `(("r-formula" ,r-formula)
13108 ("r-ggplot2" ,r-ggplot2)
13109 ("r-pkgmaker" ,r-pkgmaker)
13111 ("r-rngtools" ,r-rngtools)
13112 ("r-scales" ,r-scales)))
13113 (home-page "https://github.com/shenorrLab/csSAM/")
13114 (synopsis "Cell type-specific statistical analysis of microarray")
13115 (description "This package implements the method csSAM that computes
13116 cell-specific differential expression from measured cell proportions using
13119 (license license:lgpl2.1+))))
13121 (define-public r-bseqsc
13122 (let ((revision "1")
13123 (commit "fef3f3e38dcf3df37103348b5780937982b43b98"))
13126 (version (git-version "1.0" revision commit))
13129 (uri (git-reference
13130 (url "https://github.com/shenorrLab/bseqsc")
13132 (file-name (git-file-name name version))
13135 "1prw13wa20f7wlc3gkkls66n1kxz8d28qrb8icfqdwdnnv8w5qg8"))))
13136 (build-system r-build-system)
13138 `(("r-abind" ,r-abind)
13139 ("r-annotationdbi" ,r-annotationdbi)
13140 ("r-biobase" ,r-biobase)
13141 ("r-cssam" ,r-cssam)
13142 ("r-dplyr" ,r-dplyr)
13143 ("r-e1071" ,r-e1071)
13144 ("r-edger" ,r-edger)
13145 ("r-ggplot2" ,r-ggplot2)
13147 ("r-openxlsx" ,r-openxlsx)
13148 ("r-pkgmaker" ,r-pkgmaker)
13150 ("r-preprocesscore" ,r-preprocesscore)
13151 ("r-rngtools" ,r-rngtools)
13152 ("r-scales" ,r-scales)
13153 ("r-stringr" ,r-stringr)
13154 ("r-xbioc" ,r-xbioc)))
13155 (home-page "https://github.com/shenorrLab/bseqsc")
13156 (synopsis "Deconvolution of bulk sequencing experiments using single cell data")
13157 (description "BSeq-sc is a bioinformatics analysis pipeline that
13158 leverages single-cell sequencing data to estimate cell type proportion and
13159 cell type-specific gene expression differences from RNA-seq data from bulk
13160 tissue samples. This is a companion package to the publication \"A
13161 single-cell transcriptomic map of the human and mouse pancreas reveals inter-
13162 and intra-cell population structure.\" Baron et al. Cell Systems (2016)
13163 @url{https://www.ncbi.nlm.nih.gov/pubmed/27667365}.")
13164 (license license:gpl2+))))
13166 (define-public porechop
13167 ;; The recommended way to install is to clone the git repository
13168 ;; https://github.com/rrwick/Porechop#installation
13169 (let ((commit "289d5dca4a5fc327f97b3f8cecb68ecaf1014861")
13173 (version (git-version "0.2.3" revision commit))
13177 (uri (git-reference
13178 (url "https://github.com/rrwick/Porechop")
13180 (file-name (git-file-name name version))
13182 (base32 "05ps43gig0d3ia9x5lj84lb00hbsl6ba9n7y7jz927npxbr2ym23"))))
13183 (build-system python-build-system)
13184 (home-page "https://github.com/rrwick/porechop")
13185 (synopsis "Finding, trimming or splitting adapters, in Oxford Nanopore reads")
13187 "The porechop package is a tool for finding and removing adapters from Oxford
13188 Nanopore reads. Adapters on the ends of reads are trimmed off, and when a read
13189 has an adapter in its middle, it is treated as chimeric and chopped into
13190 separate reads. Porechop performs thorough alignments to effectively find
13191 adapters, even at low sequence identity. Porechop also supports demultiplexing
13192 of Nanopore reads that were barcoded with the Native Barcoding Kit, PCR
13193 Barcoding Kit or Rapid Barcoding Kit.")
13194 (license license:gpl3+))))
13196 (define-public poretools
13197 ;; The latest release was in 2016 and the latest commit is from 2017
13198 ;; the recommended way to install is to clone the git repository
13199 ;; https://poretools.readthedocs.io/en/latest/content/installation.html
13200 (let ((commit "e426b1f09e86ac259a00c261c79df91510777407")
13204 (version (git-version "0.6.0" revision commit))
13208 (uri (git-reference
13209 (url "https://github.com/arq5x/poretools")
13211 (file-name (git-file-name name version))
13213 (base32 "0bglj833wxpp3cq430p1d3xp085ls221js2y90w7ir2x5ay8l7am"))))
13214 (build-system python-build-system)
13215 ;; requires python >=2.7, <3.0, and the same for python dependencies
13216 (arguments `(#:python ,python-2))
13220 `(("python-dateutil" ,python2-dateutil)
13221 ("python-h5py" ,python2-h5py)
13222 ("python-matplotlib" ,python2-matplotlib)
13223 ("python-pandas" ,python2-pandas)
13224 ("python-seaborn" ,python2-seaborn)))
13225 (home-page "https://poretools.readthedocs.io")
13226 (synopsis "Toolkit for working with nanopore sequencing data")
13228 "The MinION from Oxford Nanopore Technologies is a nanopore sequencer.
13229 This @code{poretools} package is a flexible toolkit for exploring datasets
13230 generated by nanopore sequencing devices for the purposes of quality control and
13231 downstream analysis. Poretools operates directly on the native FAST5, a variant
13232 of the Hierarchical Data Format (HDF5) standard.")
13233 (license license:expat))))
13235 (define-public jamm
13238 (version "1.0.7.6")
13242 (uri (git-reference
13243 (url "https://github.com/mahmoudibrahim/JAMM")
13244 (commit (string-append "JAMMv" version))))
13245 (file-name (git-file-name name version))
13248 "0bsa5mf9n9q5jz7mmacrra41l7r8rac5vgsn6wv1fb52ya58b970"))))
13249 (build-system gnu-build-system)
13251 `(#:tests? #f ; there are none
13253 (modify-phases %standard-phases
13254 (delete 'configure)
13257 (lambda* (#:key inputs outputs #:allow-other-keys)
13258 (let* ((out (assoc-ref outputs "out"))
13259 (libexec (string-append out "/libexec/jamm"))
13260 (bin (string-append out "/bin")))
13261 (substitute* '("JAMM.sh"
13262 "SignalGenerator.sh")
13264 (string-append "sPath=\"" libexec "\"\n")))
13265 (for-each (lambda (file)
13266 (install-file file libexec))
13267 (list "bincalculator.r"
13279 (chmod script #o555)
13280 (install-file script bin)
13281 (wrap-program (string-append bin "/" script)
13282 `("PATH" ":" prefix
13283 (,(string-append (assoc-ref inputs "coreutils") "/bin")
13284 ,(string-append (assoc-ref inputs "gawk") "/bin")
13285 ,(string-append (assoc-ref inputs "perl") "/bin")
13286 ,(string-append (assoc-ref inputs "r-minimal") "/bin")))
13287 `("PERL5LIB" ":" prefix (,(getenv "PERL5LIB")))
13288 `("R_LIBS_SITE" ":" prefix (,(getenv "R_LIBS_SITE")))))
13289 (list "JAMM.sh" "SignalGenerator.sh")))
13293 ("coreutils" ,coreutils)
13296 ("r-minimal" ,r-minimal)
13297 ;;("r-parallel" ,r-parallel)
13298 ("r-signal" ,r-signal)
13299 ("r-mclust" ,r-mclust)))
13300 (home-page "https://github.com/mahmoudibrahim/JAMM")
13301 (synopsis "Peak finder for NGS datasets")
13303 "JAMM is a peak finder for next generation sequencing datasets (ChIP-Seq,
13304 ATAC-Seq, DNase-Seq, etc.) that can integrate replicates and assign peak
13305 boundaries accurately. JAMM is applicable to both broad and narrow
13307 (license license:gpl3+)))
13309 (define-public ngless
13316 (uri (git-reference
13317 (url "https://gitlab.com/ngless/ngless.git")
13318 (commit (string-append "v" version))))
13319 (file-name (git-file-name name version))
13322 "1wim8wpqyff080dfcazynrmjwqas38m24m0v350w245mmhrapdma"))))
13323 (build-system haskell-build-system)
13325 `(#:haddock? #f ; The haddock phase fails with: NGLess/CmdArgs.hs:20:1:
13326 ; error: parse error on input import
13327 ; import Options.Applicative
13329 (modify-phases %standard-phases
13330 (add-after 'unpack 'create-Versions.hs
13332 (substitute* "Makefile"
13333 (("BWA_VERSION = .*")
13334 (string-append "BWA_VERSION = "
13335 ,(package-version bwa) "\n"))
13336 (("SAM_VERSION = .*")
13337 (string-append "SAM_VERSION = "
13338 ,(package-version samtools) "\n"))
13339 (("PRODIGAL_VERSION = .*")
13340 (string-append "PRODIGAL_VERSION = "
13341 ,(package-version prodigal) "\n"))
13342 (("MINIMAP2_VERSION = .*")
13343 (string-append "MINIMAP2_VERSION = "
13344 ,(package-version minimap2) "\n")))
13345 (invoke "make" "NGLess/Dependencies/Versions.hs")
13347 (add-after 'create-Versions.hs 'create-cabal-file
13348 (lambda _ (invoke "hpack") #t))
13349 ;; These tools are expected to be installed alongside ngless.
13350 (add-after 'install 'link-tools
13351 (lambda* (#:key inputs outputs #:allow-other-keys)
13352 (let ((bin (string-append (assoc-ref outputs "out") "/bin/")))
13353 (symlink (string-append (assoc-ref inputs "prodigal")
13355 (string-append bin "ngless-" ,version "-prodigal"))
13356 (symlink (string-append (assoc-ref inputs "minimap2")
13358 (string-append bin "ngless-" ,version "-minimap2"))
13359 (symlink (string-append (assoc-ref inputs "samtools")
13361 (string-append bin "ngless-" ,version "-samtools"))
13362 (symlink (string-append (assoc-ref inputs "bwa")
13364 (string-append bin "ngless-" ,version "-bwa"))
13367 `(("prodigal" ,prodigal)
13369 ("samtools" ,samtools)
13370 ("minimap2" ,minimap2)
13371 ("ghc-aeson" ,ghc-aeson)
13372 ("ghc-ansi-terminal" ,ghc-ansi-terminal)
13373 ("ghc-async" ,ghc-async)
13374 ("ghc-atomic-write" ,ghc-atomic-write)
13375 ("ghc-bytestring-lexing" ,ghc-bytestring-lexing)
13376 ("ghc-conduit" ,ghc-conduit)
13377 ("ghc-conduit-algorithms" ,ghc-conduit-algorithms)
13378 ("ghc-conduit-extra" ,ghc-conduit-extra)
13379 ("ghc-configurator" ,ghc-configurator)
13380 ("ghc-convertible" ,ghc-convertible)
13381 ("ghc-data-default" ,ghc-data-default)
13382 ("ghc-diagrams-core" ,ghc-diagrams-core)
13383 ("ghc-diagrams-lib" ,ghc-diagrams-lib)
13384 ("ghc-diagrams-svg" ,ghc-diagrams-svg)
13385 ("ghc-double-conversion" ,ghc-double-conversion)
13386 ("ghc-edit-distance" ,ghc-edit-distance)
13387 ("ghc-either" ,ghc-either)
13388 ("ghc-errors" ,ghc-errors)
13389 ("ghc-extra" ,ghc-extra)
13390 ("ghc-filemanip" ,ghc-filemanip)
13391 ("ghc-file-embed" ,ghc-file-embed)
13392 ("ghc-gitrev" ,ghc-gitrev)
13393 ("ghc-hashtables" ,ghc-hashtables)
13394 ("ghc-http-conduit" ,ghc-http-conduit)
13395 ("ghc-inline-c" ,ghc-inline-c)
13396 ("ghc-inline-c-cpp" ,ghc-inline-c-cpp)
13397 ("ghc-intervalmap" ,ghc-intervalmap)
13398 ("ghc-missingh" ,ghc-missingh)
13399 ("ghc-optparse-applicative" ,ghc-optparse-applicative)
13400 ("ghc-regex" ,ghc-regex)
13401 ("ghc-safe" ,ghc-safe)
13402 ("ghc-safeio" ,ghc-safeio)
13403 ("ghc-strict" ,ghc-strict)
13404 ("ghc-tar" ,ghc-tar)
13405 ("ghc-tar-conduit" ,ghc-tar-conduit)
13406 ("ghc-unliftio" ,ghc-unliftio)
13407 ("ghc-unliftio-core" ,ghc-unliftio-core)
13408 ("ghc-vector" ,ghc-vector)
13409 ("ghc-yaml" ,ghc-yaml)
13410 ("ghc-zlib" ,ghc-zlib)))
13413 ("r-hdf5r" ,r-hdf5r)
13414 ("r-iterators" ,r-iterators)
13415 ("r-itertools" ,r-itertools)
13416 ("r-matrix" ,r-matrix)))
13418 `(("ghc-hpack" ,ghc-hpack)
13419 ("ghc-quickcheck" ,ghc-quickcheck)
13420 ("ghc-test-framework" ,ghc-test-framework)
13421 ("ghc-test-framework-hunit",ghc-test-framework-hunit)
13422 ("ghc-test-framework-quickcheck2" ,ghc-test-framework-quickcheck2)
13423 ("ghc-test-framework-th" ,ghc-test-framework-th)))
13424 (home-page "https://gitlab.com/ngless/ngless")
13425 (synopsis "DSL for processing next-generation sequencing data")
13426 (description "Ngless is a domain-specific language for
13427 @dfn{next-generation sequencing} (NGS) data processing.")
13428 (license license:expat)))
13430 (define-public filtlong
13431 ;; The recommended way to install is to clone the git repository
13432 ;; https://github.com/rrwick/Filtlong#installation
13433 ;; and the lastest release is more than nine months old
13434 (let ((commit "d1bb46dfe8bc7efe6257b5ce222c04bfe8aedaab")
13438 (version (git-version "0.2.0" revision commit))
13442 (uri (git-reference
13443 (url "https://github.com/rrwick/Filtlong")
13445 (file-name (git-file-name name version))
13447 (base32 "1xr92r820x8qlkcr3b57iw223yq8vjgyi42jr79w2xgw47qzr575"))))
13448 (build-system gnu-build-system)
13450 `(#:tests? #f ; no check target
13452 (modify-phases %standard-phases
13453 (delete 'configure)
13455 (lambda* (#:key outputs #:allow-other-keys)
13456 (let* ((out (assoc-ref outputs "out"))
13457 (bin (string-append out "/bin"))
13458 (scripts (string-append out "/share/filtlong/scripts")))
13459 (install-file "bin/filtlong" bin)
13460 (install-file "scripts/histogram.py" scripts)
13461 (install-file "scripts/read_info_histograms.sh" scripts))
13463 (add-after 'install 'wrap-program
13464 (lambda* (#:key inputs outputs #:allow-other-keys)
13465 (let* ((out (assoc-ref outputs "out"))
13466 (path (getenv "PYTHONPATH")))
13467 (wrap-program (string-append out
13468 "/share/filtlong/scripts/histogram.py")
13469 `("PYTHONPATH" ":" prefix (,path))))
13471 (add-before 'check 'patch-tests
13473 (substitute* "scripts/read_info_histograms.sh"
13474 (("awk") (which "gawk")))
13477 `(("gawk" ,gawk) ;for read_info_histograms.sh
13478 ("python" ,python-2) ;required for histogram.py
13480 (home-page "https://github.com/rrwick/Filtlong/")
13481 (synopsis "Tool for quality filtering of Nanopore and PacBio data")
13483 "The Filtlong package is a tool for filtering long reads by quality.
13484 It can take a set of long reads and produce a smaller, better subset. It uses
13485 both read length (longer is better) and read identity (higher is better) when
13486 choosing which reads pass the filter.")
13487 (license (list license:gpl3 ;filtlong
13488 license:asl2.0))))) ;histogram.py
13490 (define-public nanopolish
13491 ;; The recommended way to install is to clone the git repository
13492 ;; <https://github.com/jts/nanopolish#installing-a-particular-release>.
13493 ;; Also, the differences between release and current version seem to be
13495 (let ((commit "6331dc4f15b9dfabb954ba3fae9d76b6c3ca6377")
13498 (name "nanopolish")
13499 (version (git-version "0.11.1" revision commit))
13503 (uri (git-reference
13504 (url "https://github.com/jts/nanopolish")
13507 (file-name (git-file-name name version))
13509 (base32 "15ikl3d37y49pwd7vx36xksgsqajhf24q7qqsnpl15dqqyy5qgbc"))
13510 (modules '((guix build utils)))
13513 (delete-file-recursively "htslib")
13515 (build-system gnu-build-system)
13518 `("HDF5=noinstall" "EIGEN=noinstall" "HTS=noinstall" "CC=gcc")
13519 #:tests? #f ; no check target
13521 (modify-phases %standard-phases
13522 (add-after 'unpack 'find-eigen
13523 (lambda* (#:key inputs #:allow-other-keys)
13525 (string-append (assoc-ref inputs "eigen")
13527 (or (getenv "CPATH") "")))
13529 (delete 'configure)
13531 (lambda* (#:key outputs #:allow-other-keys)
13532 (let* ((out (assoc-ref outputs "out"))
13533 (bin (string-append out "/bin"))
13534 (scripts (string-append out "/share/nanopolish/scripts")))
13536 (install-file "nanopolish" bin)
13537 (for-each (lambda (file) (install-file file scripts))
13538 (find-files "scripts" ".*"))
13540 (add-after 'install 'wrap-programs
13541 (lambda* (#:key outputs #:allow-other-keys)
13542 (let ((pythonpath (getenv "PYTHONPATH"))
13543 (perl5lib (getenv "PERL5LIB"))
13544 (scripts (string-append (assoc-ref outputs "out")
13545 "/share/nanopolish/scripts")))
13546 (for-each (lambda (file)
13547 (wrap-program file `("PYTHONPATH" ":" prefix (,pythonpath))))
13548 (find-files scripts "\\.py"))
13549 (for-each (lambda (file)
13550 (wrap-script file `("PERL5LIB" ":" prefix (,perl5lib))))
13551 (find-files scripts "\\.pl"))))))))
13553 `(("guile" ,guile-3.0) ; for wrappers
13558 ("bioperl" ,bioperl-minimal)
13559 ("perl-getopt-long" ,perl-getopt-long)
13560 ("python" ,python-wrapper)
13561 ("python-biopython" ,python-biopython)
13562 ("python-numpy" ,python-numpy)
13563 ("python-pysam" ,python-pysam)
13564 ("python-scikit-learn" , python-scikit-learn)
13565 ("python-scipy" ,python-scipy)
13567 (home-page "https://github.com/jts/nanopolish")
13568 (synopsis "Signal-level analysis of Oxford Nanopore sequencing data")
13570 "This package analyses the Oxford Nanopore sequencing data at signal-level.
13571 Nanopolish can calculate an improved consensus sequence for a draft genome
13572 assembly, detect base modifications, call SNPs (Single nucleotide
13573 polymorphisms) and indels with respect to a reference genome and more.")
13574 (license license:expat))))
13576 (define-public cnvkit
13583 (uri (git-reference
13584 (url "https://github.com/etal/cnvkit")
13585 (commit (string-append "v" version))))
13586 (file-name (git-file-name name version))
13588 (base32 "0g2f78k68yglmj4fsfmgs8idqv3di9aj53fg0ld0hqljg8chhh82"))))
13589 (build-system python-build-system)
13591 `(("python-biopython" ,python-biopython)
13592 ("python-future" ,python-future)
13593 ("python-matplotlib" ,python-matplotlib)
13594 ("python-numpy" ,python-numpy)
13595 ("python-reportlab" ,python-reportlab)
13596 ("python-pandas" ,python-pandas)
13597 ("python-pysam" ,python-pysam)
13598 ("python-pyfaidx" ,python-pyfaidx)
13599 ("python-scipy" ,python-scipy)
13601 ("r-dnacopy" ,r-dnacopy)))
13602 (home-page "https://cnvkit.readthedocs.org/")
13603 (synopsis "Copy number variant detection from targeted DNA sequencing")
13605 "CNVkit is a Python library and command-line software toolkit to infer
13606 and visualize copy number from high-throughput DNA sequencing data. It is
13607 designed for use with hybrid capture, including both whole-exome and custom
13608 target panels, and short-read sequencing platforms such as Illumina and Ion
13610 (license license:asl2.0)))
13612 (define-public python-pyfit-sne
13614 (name "python-pyfit-sne")
13619 (uri (git-reference
13620 (url "https://github.com/KlugerLab/pyFIt-SNE")
13622 (file-name (git-file-name name version))
13624 (base32 "13wh3qkzs56azmmgnxib6xfr29g7xh09sxylzjpni5j0pp0rc5qw"))))
13625 (build-system python-build-system)
13627 `(("python-numpy" ,python-numpy)))
13631 `(("python-cython" ,python-cython)))
13632 (home-page "https://github.com/KlugerLab/pyFIt-SNE")
13633 (synopsis "FFT-accelerated Interpolation-based t-SNE")
13635 "t-Stochastic Neighborhood Embedding (t-SNE) is a highly successful
13636 method for dimensionality reduction and visualization of high dimensional
13637 datasets. A popular implementation of t-SNE uses the Barnes-Hut algorithm to
13638 approximate the gradient at each iteration of gradient descent. This package
13639 is a Cython wrapper for FIt-SNE.")
13640 (license license:bsd-4)))
13642 (define-public bbmap
13648 (uri (string-append
13649 "mirror://sourceforge/bbmap/BBMap_" version ".tar.gz"))
13652 "1wb94bcc006qq86x77z2rz0lc8m9f1kpnw6gdhjfg9bdaqf56rm3"))))
13653 (build-system ant-build-system)
13655 `(#:build-target "dist"
13656 #:tests? #f ; there are none
13658 (list (string-append "-Dmpijar="
13659 (assoc-ref %build-inputs "java-openmpi")
13661 #:modules ((guix build ant-build-system)
13663 (guix build java-utils))
13665 (modify-phases %standard-phases
13666 (add-after 'build 'build-jni-library
13668 (with-directory-excursion "jni"
13669 (invoke "make" "-f" "makefile.linux"))))
13670 ;; There is no install target
13671 (replace 'install (install-jars "dist"))
13672 (add-after 'install 'install-scripts-and-documentation
13673 (lambda* (#:key outputs #:allow-other-keys)
13674 (substitute* "calcmem.sh"
13675 (("\\| awk ") (string-append "| " (which "awk") " ")))
13676 (let* ((scripts (find-files "." "\\.sh$"))
13677 (out (assoc-ref outputs "out"))
13678 (bin (string-append out "/bin"))
13679 (doc (string-append out "/share/doc/bbmap"))
13680 (jni (string-append out "/lib/jni")))
13681 (substitute* scripts
13682 (("\\$DIR\"\"docs") doc)
13684 (string-append "CP=" out "/share/java/BBTools.jar\n"))
13685 (("^NATIVELIBDIR.*")
13686 (string-append "NATIVELIBDIR=" jni "\n"))
13688 (string-append "CMD=\"" (which "java"))))
13689 (for-each (lambda (script) (install-file script bin)) scripts)
13691 ;; Install JNI library
13692 (install-file "jni/libbbtoolsjni.so" jni)
13694 ;; Install documentation
13695 (install-file "docs/readme.txt" doc)
13696 (copy-recursively "docs/guides" doc))
13701 ("java-eclipse-jdt-core" ,java-eclipse-jdt-core)
13702 ("java-eclipse-jdt-compiler-apt" ,java-eclipse-jdt-compiler-apt)
13703 ("java-openmpi" ,java-openmpi)))
13704 (home-page "https://sourceforge.net/projects/bbmap/")
13705 (synopsis "Aligner and other tools for short sequencing reads")
13707 "This package provides bioinformatic tools to align, deduplicate,
13708 reformat, filter and normalize DNA and RNA-seq data. It includes the
13709 following tools: BBMap, a short read aligner for DNA and RNA-seq data; BBNorm,
13710 a kmer-based error-correction and normalization tool; Dedupe, a tool to
13711 simplify assemblies by removing duplicate or contained subsequences that share
13712 a target percent identity; Reformat, to convert reads between
13713 fasta/fastq/scarf/fasta+qual/sam, interleaved/paired, and ASCII-33/64, at over
13714 500 MB/s; and BBDuk, a tool to filter, trim, or mask reads with kmer matches
13715 to an artifact/contaminant file.")
13716 (license license:bsd-3)))
13718 (define-public velvet
13724 (uri (string-append "https://www.ebi.ac.uk/~zerbino/velvet/"
13725 "velvet_" version ".tgz"))
13728 "0h3njwy66p6bx14r3ar1byb0ccaxmxka4c65rn4iybyiqa4d8kc8"))
13729 ;; Delete bundled libraries
13730 (modules '((guix build utils)))
13733 (delete-file "Manual.pdf")
13734 (delete-file-recursively "third-party")
13736 (build-system gnu-build-system)
13738 `(#:make-flags '("OPENMP=t")
13739 #:test-target "test"
13741 (modify-phases %standard-phases
13742 (delete 'configure)
13743 (add-after 'unpack 'fix-zlib-include
13745 (substitute* "src/binarySequences.c"
13746 (("../third-party/zlib-1.2.3/zlib.h") "zlib.h"))
13749 (lambda* (#:key outputs #:allow-other-keys)
13750 (let* ((out (assoc-ref outputs "out"))
13751 (bin (string-append out "/bin"))
13752 (doc (string-append out "/share/doc/velvet")))
13755 (install-file "velveth" bin)
13756 (install-file "velvetg" bin)
13757 (install-file "Manual.pdf" doc)
13758 (install-file "Columbus_manual.pdf" doc)
13761 `(("openmpi" ,openmpi)
13764 `(("texlive" ,(texlive-union (list texlive-latex-graphics
13765 texlive-latex-hyperref)))))
13766 (home-page "https://www.ebi.ac.uk/~zerbino/velvet/")
13767 (synopsis "Nucleic acid sequence assembler for very short reads")
13769 "Velvet is a de novo genomic assembler specially designed for short read
13770 sequencing technologies, such as Solexa or 454. Velvet currently takes in
13771 short read sequences, removes errors then produces high quality unique
13772 contigs. It then uses paired read information, if available, to retrieve the
13773 repeated areas between contigs.")
13774 (license license:gpl2+)))
13776 (define-public python-velocyto
13778 (name "python-velocyto")
13779 (version "0.17.17")
13783 (uri (pypi-uri "velocyto" version))
13786 "0fgygyzqgrq32dv6a00biq1p1cwi6kbl5iqblxq1kklj6b2mzmhs"))))
13787 (build-system python-build-system)
13789 `(("python-joblib" ,python-joblib)))
13791 `(("python-click" ,python-click)
13792 ("python-cython" ,python-cython)
13793 ("python-h5py" ,python-h5py)
13794 ("python-loompy" ,python-loompy)
13795 ("python-matplotlib" ,python-matplotlib)
13796 ("python-numba" ,python-numba)
13797 ("python-numpy" ,python-numpy)
13798 ("python-pandas" ,python-pandas)
13799 ("python-pysam" ,python-pysam)
13800 ("python-scikit-learn" ,python-scikit-learn)
13801 ("python-scipy" ,python-scipy)))
13802 (home-page "https://github.com/velocyto-team/velocyto.py")
13803 (synopsis "RNA velocity analysis for single cell RNA-seq data")
13805 "Velocyto is a library for the analysis of RNA velocity. Velocyto
13806 includes a command line tool and an analysis pipeline.")
13807 (license license:bsd-2)))
13809 (define-public arriba
13816 (uri (string-append "https://github.com/suhrig/arriba/releases/"
13817 "download/v" version "/arriba_v" version ".tar.gz"))
13820 "0jx9656ry766vb8z08m1c3im87b0c82qpnjby9wz4kcz8vn87dx2"))))
13821 (build-system gnu-build-system)
13823 `(#:tests? #f ; there are none
13825 (modify-phases %standard-phases
13826 (replace 'configure
13827 (lambda* (#:key inputs #:allow-other-keys)
13828 (let ((htslib (assoc-ref inputs "htslib")))
13829 (substitute* "Makefile"
13830 (("-I\\$\\(HTSLIB\\)/htslib")
13831 (string-append "-I" htslib "/include/htslib"))
13832 ((" \\$\\(HTSLIB\\)/libhts.a")
13833 (string-append " " htslib "/lib/libhts.so"))))
13834 (substitute* "run_arriba.sh"
13835 (("^STAR ") (string-append (which "STAR") " "))
13836 (("samtools --version-only")
13837 (string-append (which "samtools") " --version-only"))
13838 (("samtools index")
13839 (string-append (which "samtools") " index"))
13841 (string-append (which "samtools") " sort")))
13844 (lambda* (#:key outputs #:allow-other-keys)
13845 (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
13846 (install-file "arriba" bin)
13847 (install-file "run_arriba.sh" bin)
13848 (install-file "draw_fusions.R" bin)
13849 (wrap-program (string-append bin "/draw_fusions.R")
13850 `("R_LIBS_SITE" ":" prefix (,(getenv "R_LIBS_SITE")))))
13853 `(("htslib" ,htslib)
13854 ("r-minimal" ,r-minimal)
13855 ("r-circlize" ,r-circlize)
13856 ("r-genomicalignments" ,r-genomicalignments)
13857 ("r-genomicranges" ,r-genomicranges)
13858 ("samtools" ,samtools)
13861 (home-page "https://github.com/suhrig/arriba")
13862 (synopsis "Gene fusion detection from RNA-Seq data ")
13864 "Arriba is a command-line tool for the detection of gene fusions from
13865 RNA-Seq data. It was developed for the use in a clinical research setting.
13866 Therefore, short runtimes and high sensitivity were important design criteria.
13867 It is based on the fast STAR aligner and the post-alignment runtime is
13868 typically just around two minutes. In contrast to many other fusion detection
13869 tools which build on STAR, Arriba does not require to reduce the
13870 @code{alignIntronMax} parameter of STAR to detect small deletions.")
13871 ;; All code is under the Expat license with the exception of
13872 ;; "draw_fusions.R", which is under GPLv3.
13873 (license (list license:expat license:gpl3))))
13875 (define-public adapterremoval
13877 (name "adapterremoval")
13882 (uri (git-reference
13883 (url "https://github.com/MikkelSchubert/adapterremoval")
13884 (commit (string-append "v" version))))
13885 (file-name (git-file-name name version))
13888 "1nf3ki5pfzalhrx2fr1y6pfqfi133yj2m7q4fj9irf5fb94bapwr"))))
13889 (build-system gnu-build-system)
13891 `(#:make-flags (list "COLOR_BUILD=no"
13892 (string-append "PREFIX="
13893 (assoc-ref %outputs "out")))
13894 #:test-target "test"
13896 (modify-phases %standard-phases
13897 (delete 'configure))))
13900 (home-page "https://adapterremoval.readthedocs.io/")
13901 (synopsis "Rapid sequence adapter trimming, identification, and read merging")
13903 "This program searches for and removes remnant adapter sequences from
13904 @dfn{High-Throughput Sequencing} (HTS) data and (optionally) trims low quality
13905 bases from the 3' end of reads following adapter removal. AdapterRemoval can
13906 analyze both single end and paired end data, and can be used to merge
13907 overlapping paired-ended reads into (longer) consensus sequences.
13908 Additionally, the AdapterRemoval may be used to recover a consensus adapter
13909 sequence for paired-ended data, for which this information is not available.")
13910 (license license:gpl3+)))
13912 (define-public pplacer
13913 (let ((commit "807f6f3"))
13916 ;; The commit should be updated with each version change.
13917 (version "1.1.alpha19")
13921 (uri (git-reference
13922 (url "https://github.com/matsen/pplacer")
13923 (commit (string-append "v" version))))
13924 (file-name (git-file-name name version))
13926 (base32 "11ppbbbx20p2g9wj3ff64dhnarb12q79v7qh4rk0gj6lkbz4n7cn"))))
13927 (build-system ocaml-build-system)
13929 `(#:modules ((guix build ocaml-build-system)
13933 (modify-phases %standard-phases
13934 (delete 'configure)
13935 (add-after 'unpack 'fix-build-with-latest-ocaml
13937 (substitute* "myocamlbuild.ml"
13938 (("dep \\[\"c_pam\"\\]" m)
13939 (string-append "flag [\"ocaml\"; \"compile\"] (A \"-unsafe-string\");\n"
13941 (("let run_and_read" m)
13946 let pos = String.index s ch in
13947 x := (String.before s pos)::!x;
13948 go (String.after s (pos + 1))
13951 with Not_found -> !x
13952 let split_nl s = split s '\\n'
13953 let before_space s =
13954 try String.before s (String.index s ' ')
13955 with Not_found -> s
13958 (("run_and_read \"ocamlfind list \\| cut -d' ' -f1\"" m)
13959 (string-append "List.map before_space (split_nl & " m ")"))
13960 ((" blank_sep_strings &") "")
13961 ((" Lexing.from_string &") ""))
13963 (add-after 'unpack 'replace-bundled-cddlib
13964 (lambda* (#:key inputs #:allow-other-keys)
13965 (let* ((cddlib-src (assoc-ref inputs "cddlib-src"))
13966 (local-dir "cddlib_guix"))
13968 (with-directory-excursion local-dir
13969 (invoke "tar" "xvf" cddlib-src))
13970 (let ((cddlib-src-folder
13971 (string-append local-dir "/"
13972 (list-ref (scandir local-dir) 2)
13974 (for-each make-file-writable (find-files "cdd_src" ".*"))
13978 (string-append "cdd_src/" (basename file))))
13979 (find-files cddlib-src-folder ".*[ch]$")))
13981 (add-after 'unpack 'fix-makefile
13983 ;; Remove system calls to 'git'.
13984 (substitute* "Makefile"
13985 (("^DESCRIPT:=pplacer-.*")
13987 "DESCRIPT:=pplacer-$(shell uname)-v" ,version "\n")))
13988 (substitute* "myocamlbuild.ml"
13989 (("git describe --tags --long .*\\\" with")
13991 "echo -n v" ,version "-" ,commit "\" with")))
13994 (lambda* (#:key outputs #:allow-other-keys)
13995 (let* ((out (assoc-ref outputs "out"))
13996 (bin (string-append out "/bin")))
13997 (copy-recursively "bin" bin))
13999 #:ocaml ,ocaml-4.07
14000 #:findlib ,ocaml4.07-findlib))
14002 `(("zlib" ,zlib "static")
14004 ("ocaml-ounit" ,(package-with-ocaml4.07 ocaml-ounit))
14005 ("ocaml-batteries" ,(package-with-ocaml4.07 ocaml-batteries))
14006 ("ocaml-camlzip" ,(package-with-ocaml4.07 camlzip))
14007 ("ocaml-csv" ,(package-with-ocaml4.07 ocaml-csv))
14008 ("ocaml-sqlite3" ,ocaml4.07-sqlite3)
14009 ("ocaml-xmlm" ,(package-with-ocaml4.07 ocaml-xmlm))
14010 ("ocaml-mcl" ,(package-with-ocaml4.07 ocaml-mcl))
14011 ("ocaml-gsl" ,ocaml4.07-gsl-1)))
14013 `(("cddlib-src" ,(package-source cddlib))
14014 ("ocamlbuild" ,(package-with-ocaml4.07 ocamlbuild))
14015 ("pkg-config" ,pkg-config)))
14017 `(("pplacer-scripts" ,pplacer-scripts)))
14018 (synopsis "Phylogenetic placement of biological sequences")
14020 "Pplacer places query sequences on a fixed reference phylogenetic tree
14021 to maximize phylogenetic likelihood or posterior probability according to a
14022 reference alignment. Pplacer is designed to be fast, to give useful
14023 information about uncertainty, and to offer advanced visualization and
14024 downstream analysis.")
14025 (home-page "https://matsen.fhcrc.org/pplacer/")
14026 (license license:gpl3))))
14028 ;; This package is installed alongside 'pplacer'. It is a separate package so
14029 ;; that it can use the python-build-system for the scripts that are
14030 ;; distributed alongside the main OCaml binaries.
14031 (define pplacer-scripts
14034 (name "pplacer-scripts")
14035 (build-system python-build-system)
14037 `(#:python ,python-2
14039 (modify-phases %standard-phases
14040 (add-after 'unpack 'enter-scripts-dir
14041 (lambda _ (chdir "scripts") #t))
14043 (lambda _ (invoke "python" "-m" "unittest" "discover" "-v") #t))
14044 (add-after 'install 'wrap-executables
14045 (lambda* (#:key inputs outputs #:allow-other-keys)
14046 (let* ((out (assoc-ref outputs "out"))
14047 (bin (string-append out "/bin")))
14048 (let ((path (string-append
14049 (assoc-ref inputs "hmmer") "/bin:"
14050 (assoc-ref inputs "infernal") "/bin")))
14052 (wrap-program (string-append bin "/refpkg_align.py")
14053 `("PATH" ":" prefix (,path))))
14054 (let ((path (string-append
14055 (assoc-ref inputs "hmmer") "/bin")))
14056 (wrap-program (string-append bin "/hrefpkg_query.py")
14057 `("PATH" ":" prefix (,path)))))
14060 `(("infernal" ,infernal)
14063 `(("python-biopython" ,python2-biopython)
14064 ("taxtastic" ,taxtastic)))
14065 (synopsis "Pplacer Python scripts")))
14067 (define-public python2-checkm-genome
14069 (name "python2-checkm-genome")
14074 (uri (pypi-uri "checkm-genome" version))
14077 "0bm8gpxjmzxsxxl8lzwqhgx8g1dlnmp6znz7wv3hgb0gdjbf9dzz"))))
14078 (build-system python-build-system)
14080 `(#:python ,python-2
14081 #:tests? #f)) ; some tests are interactive
14083 `(("python-dendropy" ,python2-dendropy)
14084 ("python-matplotlib" ,python2-matplotlib)
14085 ("python-numpy" ,python2-numpy)
14086 ("python-pysam" ,python2-pysam)
14087 ("python-scipy" ,python2-scipy)))
14088 (home-page "https://pypi.org/project/Checkm/")
14089 (synopsis "Assess the quality of putative genome bins")
14091 "CheckM provides a set of tools for assessing the quality of genomes
14092 recovered from isolates, single cells, or metagenomes. It provides robust
14093 estimates of genome completeness and contamination by using collocated sets of
14094 genes that are ubiquitous and single-copy within a phylogenetic lineage.
14095 Assessment of genome quality can also be examined using plots depicting key
14096 genomic characteristics (e.g., GC, coding density) which highlight sequences
14097 outside the expected distributions of a typical genome. CheckM also provides
14098 tools for identifying genome bins that are likely candidates for merging based
14099 on marker set compatibility, similarity in genomic characteristics, and
14100 proximity within a reference genome.")
14101 (license license:gpl3+)))
14103 (define-public umi-tools
14110 (uri (pypi-uri "umi_tools" version))
14113 "08y3vz1vcx09whmbsn722lcs6jl9wyrh9i4p3k8j4cb1i32bij4a"))))
14114 (build-system python-build-system)
14116 `(("python-pandas" ,python-pandas)
14117 ("python-future" ,python-future)
14118 ("python-scipy" ,python-scipy)
14119 ("python-matplotlib" ,python-matplotlib)
14120 ("python-regex" ,python-regex)
14121 ("python-pysam" ,python-pysam)))
14123 `(("python-cython" ,python-cython)))
14124 (home-page "https://github.com/CGATOxford/UMI-tools")
14125 (synopsis "Tools for analyzing unique modular identifiers")
14126 (description "This package provides tools for dealing with @dfn{Unique
14127 Molecular Identifiers} (UMIs) and @dfn{Random Molecular Tags} (RMTs) in
14128 genetic sequences. There are six tools: the @code{extract} and
14129 @code{whitelist} commands are used to prepare a fastq containing UMIs @code{+/-}
14130 cell barcodes for alignment. The remaining commands, @code{group},
14131 @code{dedup}, and @{count}/@code{count_tab}, are used to identify PCR
14132 duplicates using the UMIs and perform different levels of analysis depending
14133 on the needs of the user.")
14134 (license license:expat)))
14136 (define-public ataqv
14143 (uri (git-reference
14144 (url "https://github.com/ParkerLab/ataqv")
14146 (file-name (git-file-name name version))
14149 "031xr6jx1aprh26y5b1lv3gzrlmzg4alfl73vvshymx8cq8asrqi"))))
14150 (build-system gnu-build-system)
14153 (list (string-append "prefix=" (assoc-ref %outputs "out"))
14154 (string-append "BOOST_ROOT="
14155 (assoc-ref %build-inputs "boost"))
14156 (string-append "HTSLIB_ROOT="
14157 (assoc-ref %build-inputs "htslib")))
14158 #:test-target "test"
14160 (modify-phases %standard-phases
14161 (delete 'configure))))
14165 ("ncurses" ,ncurses)
14169 (home-page "https://github.com/ParkerLab/ataqv")
14170 (synopsis "Toolkit for quality control and visualization of ATAC-seq data")
14171 (description "This package provides a toolkit for measuring and comparing
14172 ATAC-seq results. It was written to make it easier to spot differences that
14173 might be caused by ATAC-seq library prep or sequencing. The main program,
14174 @code{ataqv}, examines aligned reads and reports some basic metrics.")
14175 (license license:gpl3+)))
14177 (define-public r-psiplot
14184 (uri (git-reference
14185 (url "https://github.com/kcha/psiplot")
14186 (commit (string-append "v" version))))
14187 (file-name (git-file-name name version))
14189 (base32 "08438h16cfry5kqh3y9hs8q1b1a8bxhblsm75knviz5r6q0n1jxh"))))
14190 (build-system r-build-system)
14192 `(("r-mass" ,r-mass)
14193 ("r-dplyr" ,r-dplyr)
14194 ("r-tidyr" ,r-tidyr)
14195 ("r-purrr" ,r-purrr)
14196 ("r-readr" ,r-readr)
14197 ("r-magrittr" ,r-magrittr)
14198 ("r-ggplot2" ,r-ggplot2)))
14199 (home-page "https://github.com/kcha/psiplot")
14200 (synopsis "Plot percent spliced-in values of alternatively-spliced exons")
14202 "PSIplot is an R package for generating plots of @dfn{percent
14203 spliced-in} (PSI) values of alternatively-spliced exons that were computed by
14204 vast-tools, an RNA-Seq pipeline for alternative splicing analysis. The plots
14205 are generated using @code{ggplot2}.")
14206 (license license:expat)))
14208 (define-public python-ont-fast5-api
14210 (name "python-ont-fast5-api")
14215 (uri (git-reference
14216 (url "https://github.com/nanoporetech/ont_fast5_api")
14217 (commit (string-append "release_" version))))
14218 (file-name (git-file-name name version))
14221 "03cbq4zbbwhll8ml2m9k8sa31mirsvcbjkrq1yna0kkzz9fad5fm"))))
14222 (build-system python-build-system)
14224 `(("python-numpy" ,python-numpy)
14225 ("python-six" ,python-six)
14226 ("python-h5py" ,python-h5py)
14227 ("python-progressbar33" ,python-progressbar33)))
14228 (home-page "https://github.com/nanoporetech/ont_fast5_api")
14229 (synopsis "Interface to HDF5 files of the Oxford Nanopore fast5 file format")
14231 "This package provides a concrete implementation of the fast5 file schema
14232 using the generic @code{h5py} library, plain-named methods to interact with
14233 and reflect the fast5 file schema, and tools to convert between
14234 @code{multi_read} and @code{single_read} formats.")
14235 (license license:mpl2.0)))
14237 (define-public tbsp
14238 (let ((commit "ec8fff4410cfb13a677dbbb95cbbc60217e64907")
14242 (version (git-version "1.0.0" revision commit))
14246 (uri (git-reference
14247 (url "https://github.com/phoenixding/tbsp")
14249 (file-name (git-file-name name version))
14252 "025ym14x8gbd6hb55lsinqj6f5qzw36i10klgs7ldzxxd7s39ki1"))))
14253 (build-system python-build-system)
14254 (arguments '(#:tests? #f)) ; no tests included
14256 `(("python-matplotlib" ,python-matplotlib)
14257 ("python-networkx" ,python-networkx)
14258 ("python-numpy" ,python-numpy)
14259 ("python-pybigwig" ,python-pybigwig)
14260 ("python-biopython" ,python-biopython)
14261 ("python-scikit-learn" ,python-scikit-learn)
14262 ("python-scipy" ,python-scipy)))
14263 (home-page "https://github.com/phoenixding/tbsp/")
14264 (synopsis "SNP-based trajectory inference")
14266 "Several studies focus on the inference of developmental and response
14267 trajectories from single cell RNA-Seq (scRNA-Seq) data. A number of
14268 computational methods, often referred to as pseudo-time ordering, have been
14269 developed for this task. CRISPR has also been used to reconstruct lineage
14270 trees by inserting random mutations. The tbsp package implements an
14271 alternative method to detect significant, cell type specific sequence
14272 mutations from scRNA-Seq data.")
14273 (license license:expat))))
14275 (define-public tabixpp
14281 (uri (git-reference
14282 (url "https://github.com/ekg/tabixpp")
14283 (commit (string-append "v" version))))
14284 (file-name (git-file-name name version))
14286 (base32 "1k2a3vbq96ic4lw72iwp5s3mwwc4xhdffjj584yn6l9637q9j1yd"))
14287 (modules '((guix build utils)))
14290 (delete-file-recursively "htslib") #t))))
14291 (build-system gnu-build-system)
14293 `(("htslib" ,htslib)
14296 `(#:tests? #f ; There are no tests to run.
14298 (modify-phases %standard-phases
14299 (delete 'configure) ; There is no configure phase.
14300 ;; The build phase needs overriding the location of htslib.
14302 (lambda* (#:key inputs #:allow-other-keys)
14303 (let ((htslib-ref (assoc-ref inputs "htslib")))
14305 (string-append "HTS_LIB=" htslib-ref "/lib/libhts.a")
14306 (string-append "INCLUDES= -I" htslib-ref "/include/htslib")
14307 "HTS_HEADERS=" ; No need to check for headers here.
14308 (string-append "LIBPATH=-L. -L" htslib-ref "/include"))
14309 (invoke "g++" "-shared" "-o" "libtabixpp.so" "tabix.o" "-lhts")
14310 (invoke "ar" "rcs" "libtabixpp.a" "tabix.o"))))
14312 (lambda* (#:key outputs #:allow-other-keys)
14313 (let* ((out (assoc-ref outputs "out"))
14314 (lib (string-append out "/lib"))
14315 (bin (string-append out "/bin")))
14316 (install-file "tabix++" bin)
14317 (install-file "libtabixpp.so" lib)
14318 (install-file "libtabixpp.a" lib)
14319 (install-file "tabix.hpp" (string-append out "/include"))
14320 (mkdir-p (string-append lib "/pkgconfig"))
14321 (with-output-to-file (string-append lib "/pkgconfig/tabixpp.pc")
14323 (format #t "prefix=~a~@
14324 exec_prefix=${prefix}~@
14325 libdir=${exec_prefix}/lib~@
14326 includedir=${prefix}/include~@
14331 Description: C++ wrapper around tabix project~@
14332 Libs: -L${libdir} -ltabixpp~@
14333 Cflags: -I${includedir}~%"
14336 (home-page "https://github.com/ekg/tabixpp")
14337 (synopsis "C++ wrapper around tabix project")
14338 (description "This is a C++ wrapper around the Tabix project which abstracts
14339 some of the details of opening and jumping in tabix-indexed files.")
14340 (license license:expat)))
14342 (define-public smithwaterman
14343 (let ((commit "2610e259611ae4cde8f03c72499d28f03f6d38a7"))
14345 (name "smithwaterman")
14346 (version (git-version "0.0.0" "2" commit))
14349 (uri (git-reference
14350 (url "https://github.com/ekg/smithwaterman/")
14352 (file-name (git-file-name name version))
14354 (base32 "0i9d8zrxpiracw3mxzd9siybpy62p06rqz9mc2w93arajgbk45bs"))))
14355 (build-system gnu-build-system)
14357 `(#:tests? #f ; There are no tests to run.
14358 #:make-flags '("libsw.a" "all")
14360 (modify-phases %standard-phases
14361 (delete 'configure) ; There is no configure phase.
14362 (add-after 'unpack 'patch-source
14364 (substitute* "Makefile"
14365 (("-c ") "-c -fPIC "))
14367 (add-after 'build 'build-dynamic
14370 "-shared" "-o" "libsmithwaterman.so"
14371 "smithwaterman.o" "SmithWatermanGotoh.o"
14372 "disorder.o" "BandedSmithWaterman.o"
14373 "LeftAlign.o" "Repeats.o" "IndelAllele.o")))
14375 (lambda* (#:key outputs #:allow-other-keys)
14376 (let* ((out (assoc-ref outputs "out"))
14377 (bin (string-append out "/bin"))
14378 (lib (string-append out "/lib")))
14379 (install-file "smithwaterman" bin)
14382 (install-file file (string-append out "/include/smithwaterman")))
14383 (find-files "." "\\.h$"))
14384 (install-file "libsmithwaterman.so" lib)
14385 (install-file "libsw.a" lib)
14386 (mkdir-p (string-append lib "/pkgconfig"))
14387 (with-output-to-file (string-append lib "/pkgconfig/smithwaterman.pc")
14389 (format #t "prefix=~a~@
14390 exec_prefix=${prefix}~@
14391 libdir=${exec_prefix}/lib~@
14392 includedir=${prefix}/include/smithwaterman~@
14395 Name: smithwaterman~@
14397 Description: smith-waterman-gotoh alignment algorithm~@
14398 Libs: -L${libdir} -lsmithwaterman~@
14399 Cflags: -I${includedir}~%"
14402 (home-page "https://github.com/ekg/smithwaterman")
14403 (synopsis "Implementation of the Smith-Waterman algorithm")
14404 (description "Implementation of the Smith-Waterman algorithm.")
14405 ;; The licensing terms are unclear: https://github.com/ekg/smithwaterman/issues/9.
14406 (license (list license:gpl2 license:expat)))))
14408 (define-public multichoose
14410 (name "multichoose")
14414 (uri (git-reference
14415 (url "https://github.com/ekg/multichoose/")
14416 (commit (string-append "v" version))))
14417 (file-name (git-file-name name version))
14419 (base32 "0ci5fqvmpamwgxvmyd79ygj6n3bnbl3vc7b6h1sxz58186sm3pfs"))))
14420 (build-system gnu-build-system)
14422 `(#:tests? #f ; Tests require node.
14424 (modify-phases %standard-phases
14425 (delete 'configure) ; There is no configure phase.
14427 (lambda* (#:key outputs #:allow-other-keys)
14428 (let* ((out (assoc-ref outputs "out"))
14429 (bin (string-append out "/bin"))
14430 (include (string-append out "/include")))
14431 ;; TODO: There are Python modules for these programs too.
14432 (install-file "multichoose" bin)
14433 (install-file "multipermute" bin)
14434 (install-file "multichoose.h" include)
14435 (install-file "multipermute.h" include))
14437 (home-page "https://github.com/ekg/multichoose")
14438 (synopsis "Efficient loopless multiset combination generation algorithm")
14439 (description "This library implements an efficient loopless multiset
14440 combination generation algorithm which is (approximately) described in
14441 \"Loopless algorithms for generating permutations, combinations, and other
14442 combinatorial configurations.\", G. Ehrlich - Journal of the ACM (JACM),
14443 1973. (Algorithm 7.)")
14444 (license license:expat)))
14446 (define-public fsom
14447 (let ((commit "a6ef318fbd347c53189384aef7f670c0e6ce89a3"))
14450 (version (git-version "0.0.0" "1" commit))
14453 (uri (git-reference
14454 (url "https://github.com/ekg/fsom/")
14456 (file-name (git-file-name name version))
14458 (base32 "0gw1lpvr812pywg9y546x0h1hhj261xwls41r6kqhddjlrcjc0pi"))))
14459 (build-system gnu-build-system)
14461 `(#:tests? #f ; There are no tests to run.
14463 (modify-phases %standard-phases
14464 (delete 'configure) ; There is no configure phase.
14466 (lambda* (#:key outputs #:allow-other-keys)
14467 (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
14468 (install-file "fsom" bin))
14470 (home-page "https://github.com/ekg/fsom")
14471 (synopsis "Manage SOM (Self-Organizing Maps) neural networks")
14472 (description "A tiny C library for managing SOM (Self-Organizing Maps)
14474 (license license:gpl3))))
14476 (define-public fastahack
14482 (uri (git-reference
14483 (url "https://github.com/ekg/fastahack/")
14484 (commit (string-append "v" version))))
14485 (file-name (git-file-name name version))
14487 (base32 "0rp1blskhzxf7vbh253ibpxbgl9wwgyzf1wbkxndi08d3j4vcss9"))))
14488 (build-system gnu-build-system)
14490 `(#:tests? #f ; Unclear how to run tests: https://github.com/ekg/fastahack/issues/15
14492 (modify-phases %standard-phases
14493 (delete 'configure) ; There is no configure phase.
14494 (add-after 'unpack 'patch-source
14496 (substitute* "Makefile"
14497 (("-c ") "-c -fPIC "))
14499 (add-after 'build 'build-dynamic
14502 "-shared" "-o" "libfastahack.so"
14503 "Fasta.o" "FastaHack.o" "split.o" "disorder.o")))
14505 (lambda* (#:key outputs #:allow-other-keys)
14506 (let* ((out (assoc-ref outputs "out"))
14507 (lib (string-append out "/lib"))
14508 (bin (string-append out "/bin")))
14509 (mkdir-p (string-append out "/include/fastahack"))
14512 (install-file file (string-append out "/include/fastahack")))
14513 (find-files "." "\\.h$"))
14514 (install-file "fastahack" bin)
14515 (install-file "libfastahack.so" lib)
14516 (mkdir-p (string-append lib "/pkgconfig"))
14517 (with-output-to-file (string-append lib "/pkgconfig/fastahack.pc")
14519 (format #t "prefix=~a~@
14520 exec_prefix=${prefix}~@
14521 libdir=${exec_prefix}/lib~@
14522 includedir=${prefix}/include/fastahack~@
14527 Description: Indexing and sequence extraction from FASTA files~@
14528 Libs: -L${libdir} -lfastahack~@
14529 Cflags: -I${includedir}~%"
14532 (home-page "https://github.com/ekg/fastahack")
14533 (synopsis "Indexing and sequence extraction from FASTA files")
14534 (description "Fastahack is a small application for indexing and
14535 extracting sequences and subsequences from FASTA files. The included library
14536 provides a FASTA reader and indexer that can be embedded into applications
14537 which would benefit from directly reading subsequences from FASTA files. The
14538 library automatically handles index file generation and use.")
14539 (license (list license:expat license:gpl2))))
14541 (define-public vcflib
14548 (uri (git-reference
14549 (url "https://github.com/vcflib/vcflib")
14550 (commit (string-append "v" version))))
14551 (file-name (git-file-name name version))
14553 (base32 "1k1z3876kbzifj1sqfzsf3lgb4rw779hvkg6ryxbyq5bc2paj9kh"))
14554 (modules '((guix build utils)))
14557 (substitute* "CMakeLists.txt"
14558 ((".*fastahack.*") "")
14559 ((".*smithwaterman.*") "")
14560 (("(pkg_check_modules\\(TABIXPP)" text)
14562 "pkg_check_modules(FASTAHACK REQUIRED fastahack)\n"
14563 "pkg_check_modules(SMITHWATERMAN REQUIRED smithwaterman)\n"
14565 (("\\$\\{TABIXPP_LIBRARIES\\}" text)
14566 (string-append "${FASTAHACK_LIBRARIES} "
14567 "${SMITHWATERMAN_LIBRARIES} "
14569 (substitute* (find-files "." "\\.(h|c)(pp)?$")
14570 (("\"SmithWatermanGotoh.h\"") "<smithwaterman/SmithWatermanGotoh.h>")
14571 (("\"convert.h\"") "<smithwaterman/convert.h>")
14572 (("\"disorder.h\"") "<smithwaterman/disorder.h>")
14573 (("Fasta.h") "fastahack/Fasta.h"))
14574 (for-each delete-file-recursively
14575 '("fastahack" "filevercmp" "fsom" "googletest" "intervaltree"
14576 "libVCFH" "multichoose" "smithwaterman"))
14578 (build-system cmake-build-system)
14582 ("fastahack" ,fastahack)
14585 ("smithwaterman" ,smithwaterman)
14586 ("tabixpp" ,tabixpp)
14590 `(("pkg-config" ,pkg-config)
14592 ;; This package builds against the .o files so we need to extract the source.
14593 ("filevercmp-src" ,(package-source filevercmp))
14594 ("fsom-src" ,(package-source fsom))
14595 ("intervaltree-src" ,(package-source intervaltree))
14596 ("multichoose-src" ,(package-source multichoose))))
14598 `(#:tests? #f ; no tests
14600 (modify-phases %standard-phases
14601 (add-after 'unpack 'build-shared-library
14603 (substitute* "CMakeLists.txt"
14604 (("vcflib STATIC") "vcflib SHARED"))
14605 (substitute* "test/Makefile"
14606 (("libvcflib.a") "libvcflib.so"))
14608 (add-after 'unpack 'unpack-submodule-sources
14609 (lambda* (#:key inputs #:allow-other-keys)
14610 (let ((unpack (lambda (source target)
14612 (with-directory-excursion target
14613 (if (file-is-directory? (assoc-ref inputs source))
14614 (copy-recursively (assoc-ref inputs source) ".")
14615 (invoke "tar" "xvf"
14616 (assoc-ref inputs source)
14617 "--strip-components=1"))))))
14619 (unpack "filevercmp-src" "filevercmp")
14620 (unpack "fsom-src" "fsom")
14621 (unpack "intervaltree-src" "intervaltree")
14622 (unpack "multichoose-src" "multichoose"))
14624 ;; This pkg-config file is provided by other distributions.
14625 (add-after 'install 'install-pkg-config-file
14626 (lambda* (#:key outputs #:allow-other-keys)
14627 (let* ((out (assoc-ref outputs "out"))
14628 (pkgconfig (string-append out "/lib/pkgconfig")))
14629 (mkdir-p pkgconfig)
14630 (with-output-to-file (string-append pkgconfig "/vcflib.pc")
14632 (format #t "prefix=~a~@
14633 exec_prefix=${prefix}~@
14634 libdir=${exec_prefix}/lib~@
14635 includedir=${prefix}/include~@
14639 Requires: smithwaterman, fastahack, tabixpp~@
14640 Description: C++ library for parsing and manipulating VCF files~@
14641 Libs: -L${libdir} -lvcflib~@
14642 Cflags: -I${includedir}~%"
14645 (home-page "https://github.com/vcflib/vcflib/")
14646 (synopsis "Library for parsing and manipulating VCF files")
14647 (description "Vcflib provides methods to manipulate and interpret
14648 sequence variation as it can be described by VCF. It is both an API for parsing
14649 and operating on records of genomic variation as it can be described by the VCF
14650 format, and a collection of command-line utilities for executing complex
14651 manipulations on VCF files.")
14652 (license license:expat)))
14654 (define-public freebayes
14660 (uri (git-reference
14661 (url "https://github.com/freebayes/freebayes")
14662 (commit (string-append "v" version))))
14663 (file-name (git-file-name name version))
14665 (base32 "0myz3giad7jqp6ricdfnig9ymlcps2h67mlivadvx97ngagm85z8"))
14666 (patches (search-patches "freebayes-devendor-deps.patch"))
14667 (modules '((guix build utils)))
14670 (delete-file-recursively "contrib/htslib")
14672 (build-system meson-build-system)
14674 `(("fastahack" ,fastahack)
14676 ("smithwaterman" ,smithwaterman)
14677 ("tabixpp" ,tabixpp)
14681 `(("bash-tap" ,bash-tap)
14683 ("grep" ,grep) ; Built with perl support.
14684 ("parallel" ,parallel)
14686 ("pkg-config" ,pkg-config)
14687 ("samtools" ,samtools)
14689 ;; This submodule is needed to run the tests.
14690 ("test-simple-bash-src"
14693 (uri (git-reference
14694 (url "https://github.com/ingydotnet/test-simple-bash/")
14695 (commit "124673ff204b01c8e96b7fc9f9b32ee35d898acc")))
14696 (file-name "test-simple-bash-src-checkout")
14698 (base32 "043plp6z0x9yf7mdpky1fw7zcpwn1p47px95w9mh16603zqqqpga"))))))
14701 (modify-phases %standard-phases
14702 (add-after 'unpack 'patch-source
14703 (lambda* (#:key inputs #:allow-other-keys)
14704 (let ((bash-tap (assoc-ref inputs "bash-tap")))
14705 (substitute* (find-files "test/t")
14706 (("BASH_TAP_ROOT=bash-tap")
14707 (string-append "BASH_TAP_ROOT=" bash-tap "/bin"))
14708 (("bash-tap/bash-tap-bootstrap")
14709 (string-append bash-tap "/bin/bash-tap-bootstrap"))
14710 (("source.*bash-tap-bootstrap")
14711 (string-append "source " bash-tap "/bin/bash-tap-bootstrap")))
14712 (substitute* "meson.build"
14713 ;; Some inputs aren't actually needed.
14714 ((".*bamtools/src.*") "")
14715 ((".*multichoose.*") ""))
14716 (substitute* '("src/BedReader.cpp"
14718 (("../intervaltree/IntervalTree.h") "IntervalTree.h"))
14720 (add-after 'unpack 'unpack-submodule-sources
14721 (lambda* (#:key inputs #:allow-other-keys)
14722 (mkdir-p "test/test-simple-bash")
14723 (copy-recursively (assoc-ref inputs "test-simple-bash-src")
14724 "test/test-simple-bash")
14726 ;; The slow tests take longer than the specified timeout.
14727 ,@(if (any (cute string=? <> (%current-system))
14728 '("armhf-linux" "aarch64-linux"))
14730 (lambda* (#:key tests? #:allow-other-keys)
14732 (invoke "meson" "test" "--timeout-multiplier" "5"))
14735 (home-page "https://github.com/freebayes/freebayes")
14736 (synopsis "Haplotype-based variant detector")
14737 (description "FreeBayes is a Bayesian genetic variant detector designed to
14738 find small polymorphisms, specifically SNPs (single-nucleotide polymorphisms),
14739 indels (insertions and deletions), MNPs (multi-nucleotide polymorphisms), and
14740 complex events (composite insertion and substitution events) smaller than the
14741 length of a short-read sequencing alignment.")
14742 (license license:expat)))
14744 (define-public samblaster
14746 (name "samblaster")
14750 (uri (git-reference
14751 (url "https://github.com/GregoryFaust/samblaster")
14752 (commit (string-append "v." version))))
14753 (file-name (git-file-name name version))
14756 "0iv2ddfw8363vb2x8gr3p8g88whb6mb9m0pf71i2cqsbv6jghap7"))))
14757 (build-system gnu-build-system)
14759 `(#:tests? #f ; there are none
14761 (modify-phases %standard-phases
14762 (delete 'configure) ; There is no configure phase.
14764 (lambda* (#:key outputs #:allow-other-keys)
14765 (install-file "samblaster"
14766 (string-append (assoc-ref outputs "out") "/bin"))
14768 (home-page "https://github.com/GregoryFaust/samblaster")
14769 (synopsis "Mark duplicates in paired-end SAM files")
14770 (description "Samblaster is a fast and flexible program for marking
14771 duplicates in read-id grouped paired-end SAM files. It can also optionally
14772 output discordant read pairs and/or split read mappings to separate SAM files,
14773 and/or unmapped/clipped reads to a separate FASTQ file. When marking
14774 duplicates, samblaster will require approximately 20MB of memory per 1M read
14776 (license license:expat)))
14778 (define-public r-velocyto
14779 (let ((commit "d7790346cb99f49ab9c2b23ba70dcf9d2c9fc350")
14782 (name "r-velocyto")
14783 (version (git-version "0.6" revision commit))
14787 (uri (git-reference
14788 (url "https://github.com/velocyto-team/velocyto.R")
14790 (file-name (git-file-name name version))
14793 "16wqf70j7rd7pay2q513iyz12i8n9vrpg1bisah4lddbcpx5dz1n"))))
14794 (build-system r-build-system)
14796 `(("boost" ,boost)))
14798 `(("r-hdf5r" ,r-hdf5r)
14801 ("r-pcamethods" ,r-pcamethods)
14803 ("r-rcpparmadillo" ,r-rcpparmadillo)
14804 ;; Suggested packages
14805 ("r-rtsne" ,r-rtsne)
14806 ("r-cluster" ,r-cluster)
14807 ("r-abind" ,r-abind)
14809 ("r-biocgenerics" ,r-biocgenerics)
14810 ("r-genomicalignments" ,r-genomicalignments)
14811 ("r-rsamtools" ,r-rsamtools)
14812 ("r-edger" ,r-edger)
14813 ("r-igraph" ,r-igraph)))
14814 (home-page "https://velocyto.org")
14815 (synopsis "RNA velocity estimation in R")
14817 "This package provides basic routines for estimation of gene-specific
14818 transcriptional derivatives and visualization of the resulting velocity
14820 (license license:gpl3))))
14822 (define-public methyldackel
14824 (name "methyldackel")
14828 (uri (git-reference
14829 (url "https://github.com/dpryan79/MethylDackel")
14831 (file-name (git-file-name name version))
14834 "1sfhf2ap75qxpnmy1ifgmxqs18rq8mah9mcgkby73vc6h0sw99ws"))))
14835 (build-system gnu-build-system)
14837 `(#:test-target "test"
14840 (string-append "prefix="
14841 (assoc-ref %outputs "out") "/bin/"))
14843 (modify-phases %standard-phases
14844 (replace 'configure
14845 (lambda* (#:key outputs #:allow-other-keys)
14846 (substitute* "Makefile"
14847 (("-lhts ") "-lhts -lBigWig ")
14848 (("install MethylDackel \\$\\(prefix\\)" match)
14849 (string-append "install -d $(prefix); " match)))
14852 `(("curl" ,curl) ; XXX: needed by libbigwig
14853 ("htslib" ,htslib-1.9)
14854 ("libbigwig" ,libbigwig)
14856 ;; Needed for tests
14858 `(("python" ,python-wrapper)))
14859 (home-page "https://github.com/dpryan79/MethylDackel")
14860 (synopsis "Universal methylation extractor for BS-seq experiments")
14862 "MethylDackel will process a coordinate-sorted and indexed BAM or CRAM
14863 file containing some form of BS-seq alignments and extract per-base
14864 methylation metrics from them. MethylDackel requires an indexed fasta file
14865 containing the reference genome as well.")
14866 ;; See https://github.com/dpryan79/MethylDackel/issues/85
14867 (license license:expat)))
14869 ;; This package bundles PCRE 8.02 and cannot be built with the current
14871 (define-public phast
14877 (uri (git-reference
14878 (url "https://github.com/CshlSiepelLab/phast")
14879 (commit (string-append "v" version))))
14880 (file-name (git-file-name name version))
14883 "10lpbllvny923jjbbyrpxahhd1m5h7sbj9gx7rd123rg10mlidki"))))
14884 (build-system gnu-build-system)
14888 (string-append "DESTDIR=" (assoc-ref %outputs "out")))
14890 (modify-phases %standard-phases
14891 (replace 'configure
14892 (lambda* (#:key inputs outputs #:allow-other-keys)
14894 (substitute* "test/Makefile"
14896 (substitute* "Makefile"
14897 (("CLAPACKPATH=/usr/lib")
14898 (string-append "CLAPACKPATH="
14899 (assoc-ref inputs "clapack") "/lib")))
14900 ;; Renaming the libraries is not necessary with our version of
14902 (substitute* "src/lib/Makefile"
14903 (("ifdef CLAPACKPATH") "ifdef UNNECESSARY"))
14904 (substitute* "src/make-include.mk"
14905 (("-lblaswr") "-lblas")
14906 (("-ltmg") "-ltmglib")
14907 (("liblapack.a") "liblapack.so")
14908 (("libblas.a") "libblas.so")
14909 (("libf2c.a") "libf2c.so"))
14910 (substitute* "src/Makefile"
14911 (("/opt") "/share")
14917 (string-append (getcwd) "/bin:" (getenv "PATH")))
14918 ;; Disable broken test
14919 (substitute* "test/Makefile"
14920 ((".*if.*hmrc_summary" m) (string-append "#" m)))
14921 ;; Only run the msa_view tests because the others fail for
14922 ;; unknown reasons.
14923 (invoke "make" "-C" "test" "msa_view"))))))
14925 `(("clapack" ,clapack)))
14928 (home-page "http://compgen.cshl.edu/phast/")
14929 (synopsis "Phylogenetic analysis with space/time models")
14931 "Phylogenetic Analysis with Space/Time models (PHAST) is a collection of
14932 command-line programs and supporting libraries for comparative and
14933 evolutionary genomics. Best known as the search engine behind the
14934 Conservation tracks in the University of California, Santa Cruz (UCSC) Genome
14935 Browser, PHAST also includes several tools for phylogenetic modeling,
14936 functional element identification, as well as utilities for manipulating
14937 alignments, trees and genomic annotations.")
14938 (license license:bsd-3)))
14940 (define-public python-gffutils
14941 ;; The latest release is older more than a year than the latest commit
14942 (let ((commit "4034c54600813b1402945e12faa91b3a53162cf1")
14945 (name "python-gffutils")
14946 (version (git-version "0.9" revision commit))
14950 (uri (git-reference
14951 (url "https://github.com/daler/gffutils")
14953 (file-name (git-file-name name version))
14956 "1rwafjdnbir5wnk0ap06ww4lra3p5frhy7mfs03rlldgfnwxymsn"))))
14957 (build-system python-build-system)
14960 (modify-phases %standard-phases
14963 ;; Tests need to access the HOME directory
14964 (setenv "HOME" "/tmp")
14965 (invoke "nosetests" "-a" "!slow")))
14966 (add-after 'unpack 'make-gz-files-writable
14968 (for-each make-file-writable
14969 (find-files "." "\\.gz"))
14972 `(("python-argcomplete" ,python-argcomplete)
14973 ("python-argh" ,python-argh)
14974 ("python-biopython" ,python-biopython)
14975 ("python-pybedtools" ,python-pybedtools)
14976 ("python-pyfaidx" ,python-pyfaidx)
14977 ("python-simplejson" ,python-simplejson)
14978 ("python-six" ,python-six)))
14980 `(("python-nose" , python-nose)))
14981 (home-page "https://github.com/daler/gffutils")
14982 (synopsis "Tool for manipulation of GFF and GTF files")
14984 "python-gffutils is a Python package for working with and manipulating
14985 the GFF and GTF format files typically used for genomic annotations. The
14986 files are loaded into a SQLite database, allowing much more complex
14987 manipulation of hierarchical features (e.g., genes, transcripts, and exons)
14988 than is possible with plain-text methods alone.")
14989 (license license:expat))))
14991 (define-public indelfixer
14993 (name "indelfixer")
14997 (uri (git-reference
14998 (url "https://github.com/cbg-ethz/InDelFixer/")
14999 (commit (string-append "v" version))))
15000 (file-name (git-file-name name version))
15003 "10ak05x8i1bx2p7rriv2rglqg1wr7c8wrhjrqlq1wm7ka99w8i79"))))
15004 (build-system ant-build-system)
15006 `(#:jar-name "InDelFixer.jar"
15007 #:source-dir "src/main/java"
15008 #:test-dir "src/test"))
15010 `(("java-commons-lang2" ,java-commons-lang)
15011 ("java-args4j" ,java-args4j)))
15013 `(("java-junit" ,java-junit)))
15014 (home-page "https://github.com/cbg-ethz/InDelFixer/")
15015 (synopsis "Iterative and sensitive NGS sequence aligner")
15016 (description "InDelFixer is a sensitive aligner for 454, Illumina and
15017 PacBio data, employing a full Smith-Waterman alignment against a reference.
15018 This Java command line application aligns Next-Generation Sequencing (NGS) and
15019 third-generation reads to a set of reference sequences, by a prior fast k-mer
15020 matching and removes indels, causing frame shifts. In addition, only a
15021 specific region can be considered. An iterative refinement of the alignment
15022 can be performed, by alignment against the consensus sequence with wobbles.
15023 The output is in SAM format.")
15024 (license license:gpl3+)))
15026 (define-public libsbml
15032 (uri (string-append "mirror://sourceforge/sbml/libsbml/"
15033 version "/stable/libSBML-"
15034 version "-core-src.tar.gz"))
15037 "0slkagrk3nfi2qsksv6b1brj6zhx4bj4bkib2sdycvrcd10ql2lh"))))
15038 (build-system cmake-build-system)
15040 `(#:test-target "test"
15042 (list "-DWITH_CHECK=ON"
15043 (string-append "-DLIBXML_LIBRARY="
15044 (assoc-ref %build-inputs "libxml2")
15046 (string-append "-DLIBXML_INCLUDE_DIR="
15047 (assoc-ref %build-inputs "libxml2")
15048 "/include/libxml2"))))
15050 `(("libxml2" ,libxml2)))
15052 `(("check" ,check-0.14)
15054 (home-page "http://sbml.org/Software/libSBML")
15055 (synopsis "Process SBML files and data streams")
15056 (description "LibSBML is a library to help you read, write, manipulate,
15057 translate, and validate SBML files and data streams. The @dfn{Systems Biology
15058 Markup Language} (SBML) is an interchange format for computer models of
15059 biological processes. SBML is useful for models of metabolism, cell
15060 signaling, and more. It continues to be evolved and expanded by an
15061 international community.")
15062 (license license:lgpl2.1+)))
15064 (define-public r-signac
15065 (let ((commit "e0512d348adeda4a3f23a2e8f56d1fe09840e03c")
15069 (version (git-version "1.1.1" revision commit))
15073 (uri (git-reference
15074 (url "https://github.com/timoast/signac/")
15076 (file-name (git-file-name name version))
15079 "1yihhrv7zs87ax61la1nb4y12lg3knraw4b20k5digbcwm8488lb"))))
15080 (properties `((upstream-name . "Signac")))
15081 (build-system r-build-system)
15082 (inputs `(("zlib" ,zlib)))
15084 `(("r-annotationfilter" ,r-annotationfilter)
15085 ("r-biocgenerics" ,r-biocgenerics)
15086 ("r-biostrings" ,r-biostrings)
15087 ("r-biovizbase" ,r-biovizbase)
15088 ("r-data-table" ,r-data-table)
15089 ("r-dplyr" ,r-dplyr)
15090 ("r-fastmatch" ,r-fastmatch)
15091 ("r-future" ,r-future)
15092 ("r-future-apply" ,r-future-apply)
15093 ("r-genomeinfodb" ,r-genomeinfodb)
15094 ("r-genomicranges" ,r-genomicranges)
15095 ("r-ggbio" ,r-ggbio)
15096 ("r-ggforce" ,r-ggforce)
15097 ("r-ggplot2" ,r-ggplot2)
15098 ("r-ggrepel" ,r-ggrepel)
15099 ("r-ggseqlogo" ,r-ggseqlogo)
15100 ("r-iranges" ,r-iranges)
15101 ("r-irlba" ,r-irlba)
15103 ("r-matrix" ,r-matrix)
15104 ("r-patchwork" ,r-patchwork)
15105 ("r-pbapply" ,r-pbapply)
15107 ("r-rcpproll" ,r-rcpproll)
15108 ("r-rsamtools" ,r-rsamtools)
15109 ("r-s4vectors" ,r-s4vectors)
15110 ("r-scales" ,r-scales)
15111 ("r-seurat" ,r-seurat)
15112 ("r-seuratobject" ,r-seuratobject)
15113 ("r-stringi" ,r-stringi)
15114 ("r-tidyr" ,r-tidyr)))
15115 (home-page "https://github.com/timoast/signac/")
15116 (synopsis "Analysis of single-cell chromatin data")
15118 "This package provides a framework for the analysis and exploration of
15119 single-cell chromatin data. The Signac package contains functions for
15120 quantifying single-cell chromatin data, computing per-cell quality control
15121 metrics, dimension reduction and normalization, visualization, and DNA
15122 sequence motif analysis.")
15123 (license license:expat))))