summaryrefslogtreecommitdiff
path: root/gnu/packages/bioinformatics.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/bioinformatics.scm')
-rw-r--r--gnu/packages/bioinformatics.scm938
1 files changed, 859 insertions, 79 deletions
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index d3b137513c..820bd84d66 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -1,12 +1,12 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014, 2015, 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
-;;; Copyright © 2015, 2016, 2017 Ben Woodcroft <donttrustben@gmail.com>
+;;; Copyright © 2014, 2015, 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015, 2016, 2017, 2018 Ben Woodcroft <donttrustben@gmail.com>
;;; Copyright © 2015, 2016 Pjotr Prins <pjotr.guix@thebird.nl>
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
-;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>
-;;; Copyright © 2016 Raoul Bonnal <ilpuccio.febo@gmail.com>
+;;; Copyright © 2016, 2018 Raoul Bonnal <ilpuccio.febo@gmail.com>
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
;;;
@@ -71,6 +71,7 @@
#:use-module (gnu packages image)
#:use-module (gnu packages imagemagick)
#:use-module (gnu packages java)
+ #:use-module (gnu packages jemalloc)
#:use-module (gnu packages ldc)
#:use-module (gnu packages linux)
#:use-module (gnu packages logging)
@@ -2038,7 +2039,7 @@ with Python.")
(version "2.5.1")
(source (origin
(method url-fetch)
- (uri (string-append "https://github.com/fidelram/deepTools/"
+ (uri (string-append "https://github.com/deeptools/deepTools/"
"archive/" version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
@@ -2057,7 +2058,7 @@ with Python.")
`(("python-mock" ,python-mock) ;for tests
("python-nose" ,python-nose) ;for tests
("python-pytz" ,python-pytz))) ;for tests
- (home-page "https://github.com/fidelram/deepTools")
+ (home-page "https://github.com/deeptools/deepTools")
(synopsis "Tools for normalizing and visualizing deep-sequencing data")
(description
"DeepTools addresses the challenge of handling the large amounts of data
@@ -2073,7 +2074,7 @@ identify enrichments with functional annotations of the genome.")
(define-public diamond
(package
(name "diamond")
- (version "0.9.14")
+ (version "0.9.18")
(source (origin
(method url-fetch)
(uri (string-append
@@ -2082,7 +2083,7 @@ identify enrichments with functional annotations of the genome.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "07li3chjdna0wjyh680j3bhwiqh1fbfq9dy9jxxs82mc0rw0m1yy"))))
+ "1vi2nddmy7knrv8gsprwqp6a40k63n3f2dfvx22ipjhrg9xir96f"))))
(build-system cmake-build-system)
(arguments
'(#:tests? #f ; no "check" target
@@ -3433,7 +3434,7 @@ sometimes better. Khmer can also identify and fix problems with shotgun
data.")
;; When building on i686, armhf and mips64el, we get the following error:
;; error: ['khmer', 'khmer.tests', 'oxli'] require 64-bit operating system
- (supported-systems '("x86_64-linux"))
+ (supported-systems '("x86_64-linux" "aarch64-linux"))
(license license:bsd-3)))
(define-public kaiju
@@ -5562,6 +5563,11 @@ application of SortMeRNA is filtering rRNA from metatranscriptomic data.")
(modify-phases %standard-phases
(add-after 'unpack 'enter-source-dir
(lambda _ (chdir "source") #t))
+ (add-after 'enter-source-dir 'make-reproducible
+ (lambda _
+ (substitute* "Makefile"
+ (("(COMPILATION_TIME_PLACE=\")(.*)(\")" _ pre mid post)
+ (string-append pre "Built with Guix" post)))))
(add-after 'enter-source-dir 'do-not-use-bundled-htslib
(lambda _
(substitute* "Makefile"
@@ -5843,14 +5849,14 @@ information as possible.")
(define-public r-vegan
(package
(name "r-vegan")
- (version "2.4-5")
+ (version "2.4-6")
(source
(origin
(method url-fetch)
(uri (cran-uri "vegan" version))
(sha256
(base32
- "0cyyvn3xsjn24w590jn6z4xajafv7yzvj6c51vqi9q6m8v5831ya"))))
+ "175mqr42mmxy98gpf3rky8alnkw3w1k90ggdw3cispl36841p76w"))))
(build-system r-build-system)
(native-inputs
`(("gfortran" ,gfortran)))
@@ -6364,7 +6370,7 @@ SELECT or UPDATE queries to an end-point.")
(define-public vsearch
(package
(name "vsearch")
- (version "2.6.2")
+ (version "2.7.1")
(source
(origin
(method url-fetch)
@@ -6374,7 +6380,7 @@ SELECT or UPDATE queries to an end-point.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "02khrgh8hm11cgww2f9mqc6886zqli9ss4pd4kfpqzd0d31vbzv5"))
+ "0jlzfgh79fzmb4g7sngzdjjsjyc37icvs1k7vmc2ksxglj6x5i7f"))
(patches (search-patches "vsearch-unbundle-cityhash.patch"))
(snippet
'(begin
@@ -6666,25 +6672,28 @@ also known as views, in a controlled vocabulary.")
(define-public r-bookdown
(package
- (name "r-bookdown")
- (version "0.5")
- (source (origin
- (method url-fetch)
- (uri (cran-uri "bookdown" version))
- (sha256
- (base32
- "0zm63kr4f4kja4qpwkzl119zzyciqj7ihajfqgfjpgb4dzaiycxp"))))
- (build-system r-build-system)
- (propagated-inputs
- `(("r-htmltools" ,r-htmltools)
- ("r-knitr" ,r-knitr)
- ("r-rmarkdown" ,r-rmarkdown)
- ("r-yaml" ,r-yaml)))
- (home-page "https://github.com/rstudio/bookdown")
- (synopsis "Authoring books and technical documents with R markdown")
- (description "This package provides output formats and utilities for
+ (name "r-bookdown")
+ (version "0.7")
+ (source (origin
+ (method url-fetch)
+ (uri (cran-uri "bookdown" version))
+ (sha256
+ (base32
+ "1b3fw1f41zph5yw3kynb47aijq53vhaa6mnnvxly72zamyzdf95q"))))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-htmltools" ,r-htmltools)
+ ("r-knitr" ,r-knitr)
+ ("r-rmarkdown" ,r-rmarkdown)
+ ("r-tinytex" ,r-tinytex)
+ ("r-yaml" ,r-yaml)
+ ("r-xfun" ,r-xfun)
+ ("ghc-pandoc" ,ghc-pandoc)))
+ (home-page "https://github.com/rstudio/bookdown")
+ (synopsis "Authoring books and technical documents with R markdown")
+ (description "This package provides output formats and utilities for
authoring books and technical documents with R Markdown.")
- (license license:gpl3)))
+ (license license:gpl3)))
(define-public r-biocstyle
(package
@@ -6760,14 +6769,14 @@ checks on R packages that are to be submitted to the Bioconductor repository.")
(define-public r-getopt
(package
(name "r-getopt")
- (version "1.20.1")
+ (version "1.20.2")
(source
(origin
(method url-fetch)
(uri (cran-uri "getopt" version))
(sha256
(base32
- "0m463mcvixh54i3ng42n0vxmdlf97dgbfs2sf9wnjm782ddw68hm"))))
+ "13p35lbpy7i578752fa71sbfvcsqw5qfa9p6kf8b5m3c5p9i4v1x"))))
(build-system r-build-system)
(home-page "https://github.com/trevorld/getopt")
(synopsis "Command-line option processor for R")
@@ -6959,13 +6968,13 @@ names in their natural, rather than lexicographic, order.")
(define-public r-edger
(package
(name "r-edger")
- (version "3.20.2")
+ (version "3.20.8")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "edgeR" version))
(sha256
(base32
- "0j5s3i33qmld9l7gs1rzpv601zxyqz711x8mq35hml088c8s99w9"))))
+ "0g7bj6w61blw3m22hw9rc01n554k9qkjizh7njr3j4shmhads58d"))))
(properties `((upstream-name . "edgeR")))
(build-system r-build-system)
(propagated-inputs
@@ -6987,13 +6996,13 @@ CAGE.")
(define-public r-variantannotation
(package
(name "r-variantannotation")
- (version "1.24.2")
+ (version "1.24.5")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "VariantAnnotation" version))
(sha256
(base32
- "19wgb2kcqy97pm3xgqc781id9fbmzp1hdwzkkhdzpvyf29w4n29j"))))
+ "07ywn3c4w83l3sr76d0z3b1nv9icgdh3phsjlc6cfx7i6nfmvxw2"))))
(properties
`((upstream-name . "VariantAnnotation")))
(inputs
@@ -7025,13 +7034,13 @@ coding changes and predict coding outcomes.")
(define-public r-limma
(package
(name "r-limma")
- (version "3.34.4")
+ (version "3.34.8")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "limma" version))
(sha256
(base32
- "1vcxf9jg8xngxg5kb9bp8rw5sghpnkpj320iq309m2fp41ahsk3f"))))
+ "0bmxsgz2yll83sd3wbxsrsfd35468igb0d8lldym0d0lqfz906bw"))))
(build-system r-build-system)
(home-page "http://bioinf.wehi.edu.au/limma")
(synopsis "Package for linear models for microarray and RNA-seq data")
@@ -7080,13 +7089,13 @@ different technologies, including microarrays, RNA-seq, and quantitative PCR.")
(define-public r-genomicranges
(package
(name "r-genomicranges")
- (version "1.30.0")
+ (version "1.30.2")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "GenomicRanges" version))
(sha256
(base32
- "10ra2sjn17h6gilm9iz0cygp9ijpgbirljlc4drwrnivnw9cmi2a"))))
+ "0c3r155603vb4zjs3adqa72770bh8karc11y8gl62l1m24jrkbnj"))))
(properties
`((upstream-name . "GenomicRanges")))
(build-system r-build-system)
@@ -7158,13 +7167,13 @@ annotation data packages using SQLite data storage.")
(define-public r-biomart
(package
(name "r-biomart")
- (version "2.34.1")
+ (version "2.34.2")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "biomaRt" version))
(sha256
(base32
- "0jzv8b86vpvavwnzi5xf7y18xmn72zkabkn2kclg1mgl847cq13k"))))
+ "1zlgs2zg0lmnk572p55n7m34nkxka8w10x8f2ndssjkffl2csy79"))))
(properties
`((upstream-name . "biomaRt")))
(build-system r-build-system)
@@ -7316,13 +7325,13 @@ array-like objects like @code{DataFrame} objects (typically with Rle columns),
(define-public r-summarizedexperiment
(package
(name "r-summarizedexperiment")
- (version "1.8.0")
+ (version "1.8.1")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "SummarizedExperiment" version))
(sha256
(base32
- "1011r8l0k8420j31bmh4xdcp6ka5bzf4bqhip84v5b6alpkcbvmf"))))
+ "19vlwnby83fqjrilsxvnvgz0gvby7mrxvlmx18nb3p1w591ddfjh"))))
(properties
`((upstream-name . "SummarizedExperiment")))
(build-system r-build-system)
@@ -7380,13 +7389,13 @@ alignments.")
(define-public r-rtracklayer
(package
(name "r-rtracklayer")
- (version "1.38.2")
+ (version "1.38.3")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "rtracklayer" version))
(sha256
(base32
- "1sjn3976f1sqvrq6jq2hgc60ffxgfr3jlklaxfrk3xad5cv2kr2d"))))
+ "1khzfczm35k5lq9h0jlqrq01192spzjyh8s6is89spj006flwn4k"))))
(build-system r-build-system)
(arguments
`(#:phases
@@ -7425,13 +7434,13 @@ as well as query and modify the browser state, such as the current viewport.")
(define-public r-genomicfeatures
(package
(name "r-genomicfeatures")
- (version "1.30.0")
+ (version "1.30.3")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "GenomicFeatures" version))
(sha256
(base32
- "1khjvq1ffhqavkwf8n7bilknci60lxbg52icrcf2vnb9k8rlpghs"))))
+ "010vn8hlwbnw12pd1d8pv6m12yp3xwx557gba5rbjq9p4qypnn3z"))))
(properties
`((upstream-name . "GenomicFeatures")))
(build-system r-build-system)
@@ -7651,13 +7660,13 @@ reference point and sorted by a user defined feature.")
(define-public r-genomation
(package
(name "r-genomation")
- (version "1.10.0")
+ (version "1.11.3")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "genomation" version))
(sha256
(base32
- "1ddd8c9w1f1i1ga9rpbwiic8rsaws1chdxx4j38bpyaiy4zhz1ca"))))
+ "1d2g1v6xhrf3gm86pv8ln22df5g6v6k6i4i39v4j82zn4apany6v"))))
(build-system r-build-system)
(propagated-inputs
`(("r-biostrings" ,r-biostrings)
@@ -8102,7 +8111,7 @@ throughput genetic sequencing data sets using regression methods.")
(define-public r-qtl
(package
(name "r-qtl")
- (version "1.41-6")
+ (version "1.42-7")
(source
(origin
(method url-fetch)
@@ -8110,7 +8119,7 @@ throughput genetic sequencing data sets using regression methods.")
version ".tar.gz"))
(sha256
(base32
- "067az4v432zxp6lxck8d7vlh9w4r13r0mvw5zsglyaqwsh3d9sad"))))
+ "0hxij8v4my5x4pf5fn5327g7m3n7vjkbzrl580vcmp81n3n3nmrx"))))
(build-system r-build-system)
(home-page "http://rqtl.org/")
(synopsis "R package for analyzing QTL experiments in genetics")
@@ -8356,14 +8365,14 @@ in SNV base substitution data.")
(define-public r-wgcna
(package
(name "r-wgcna")
- (version "1.61")
+ (version "1.62")
(source
(origin
(method url-fetch)
(uri (cran-uri "WGCNA" version))
(sha256
(base32
- "1vrc2k33a196hrrl7k0z534fp96vv0shmigcr65ny1q0v6lq0h6i"))))
+ "0c52rp09gqphz6g5x9jzkdcsyvfrknq0dkq9saslgy8q8ap974vx"))))
(properties `((upstream-name . "WGCNA")))
(build-system r-build-system)
(propagated-inputs
@@ -8461,14 +8470,14 @@ factors bound at the specific regions.")
(define-public r-gkmsvm
(package
(name "r-gkmsvm")
- (version "0.71.0")
+ (version "0.79.0")
(source
(origin
(method url-fetch)
(uri (cran-uri "gkmSVM" version))
(sha256
(base32
- "1zpxgxmf2nd5j5wn00ps6kfxr8wxh7d1swr1rr4spq7sj5z5z0k0"))))
+ "04dakbgfvfalz4rm4fvvybp506dn5fbj5g86ybfhrc6wywjllsz3"))))
(properties `((upstream-name . "gkmSVM")))
(build-system r-build-system)
(propagated-inputs
@@ -8810,18 +8819,17 @@ replacement for strverscmp.")
(define-public multiqc
(package
(name "multiqc")
- (version "1.3")
+ (version "1.4")
(source
(origin
(method url-fetch)
(uri (pypi-uri "multiqc" version))
(sha256
(base32
- "0fx1sx53znbgzfhbbiyd8j6cg5llpcsl5q5c45jy2c81d12piqfd"))))
+ "0ihx4rzmsfphv4byn05qv6f1y95g2dxs6viwziipl4wjk96acgm8"))))
(build-system python-build-system)
(propagated-inputs
- `(("python-enum34" ,python-enum34)
- ("python-jinja2" ,python-jinja2)
+ `(("python-jinja2" ,python-jinja2)
("python-simplejson" ,python-simplejson)
("python-pyyaml" ,python-pyyaml)
("python-click" ,python-click)
@@ -8936,13 +8944,13 @@ number detection tools.")
(define-public r-methylkit
(package
(name "r-methylkit")
- (version "1.4.0")
+ (version "1.4.1")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "methylKit" version))
(sha256
(base32
- "0h53w2mrjrg2n0ndi12k9j6cwclgwcgpy25nz7nyj971aisw02xn"))))
+ "1k0nfn9318sgwm4z963bhnbp4c3zv85v3f9886vc5hgaisr0yvai"))))
(properties `((upstream-name . "methylKit")))
(build-system r-build-system)
(propagated-inputs
@@ -9306,14 +9314,14 @@ structure (pcaRes) to provide a common interface to the PCA results.")
(define-public r-msnbase
(package
(name "r-msnbase")
- (version "2.4.0")
+ (version "2.4.2")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "MSnbase" version))
(sha256
(base32
- "0dqfimljhrx3gac8d1k72gppx27lz8yckyb12v4604nbviw7xd3r"))))
+ "1ig64bf881p118dwqfr0ry41m7yhnyv165smv8fdwfv7sb6sagif"))))
(properties `((upstream-name . "MSnbase")))
(build-system r-build-system)
(propagated-inputs
@@ -9386,13 +9394,13 @@ and irregular enzymatic cleavages, mass measurement accuracy, etc.")
(define-public r-seurat
(package
(name "r-seurat")
- (version "2.1.0")
+ (version "2.2.1")
(source (origin
(method url-fetch)
(uri (cran-uri "Seurat" version))
(sha256
(base32
- "1hqaq6bciikrsyw157w8fn4jw885air7xbkxrmism93rp4qx483x"))
+ "1sr82nf38hq07avrfn8vlrzjq7dfm4pcr8l1nh6mnglcql2bk9z2"))
;; Delete pre-built jar.
(snippet
'(begin (delete-file "inst/java/ModularityOptimizer.jar")
@@ -9429,8 +9437,8 @@ Main-Class: ModularityOptimizer\n")))
("r-fnn" ,r-fnn)
("r-fpc" ,r-fpc)
("r-gdata" ,r-gdata)
- ("r-ggjoy" ,r-ggjoy)
("r-ggplot2" ,r-ggplot2)
+ ("r-ggridges" ,r-ggridges)
("r-gplots" ,r-gplots)
("r-gridextra" ,r-gridextra)
("r-hmisc" ,r-hmisc)
@@ -9440,13 +9448,14 @@ Main-Class: ModularityOptimizer\n")))
("r-lars" ,r-lars)
("r-mass" ,r-mass)
("r-matrix" ,r-matrix)
+ ("r-metap" ,r-metap)
("r-mixtools" ,r-mixtools)
- ("r-nmf" ,r-nmf)
("r-pbapply" ,r-pbapply)
("r-plotly" ,r-plotly)
("r-ranger" ,r-ranger)
("r-rcolorbrewer" ,r-rcolorbrewer)
("r-rcpp" ,r-rcpp)
+ ("r-rcppeigen" ,r-rcppeigen)
("r-rcppprogress" ,r-rcppprogress)
("r-reshape2" ,r-reshape2)
("r-rocr" ,r-rocr)
@@ -9656,14 +9665,14 @@ microarrays or GRanges for sequencing data.")
(define-public r-keggrest
(package
(name "r-keggrest")
- (version "1.18.0")
+ (version "1.18.1")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "KEGGREST" version))
(sha256
(base32
- "1i3i88lj57wvpgjf75a23msgfsjv8pr2b4j1faga276p4fsblkhj"))))
+ "02gwmm79djj55a90dzc80hlgwc6bafl7xd7fnx2q59pk945k3z9c"))))
(properties `((upstream-name . "KEGGREST")))
(build-system r-build-system)
(propagated-inputs
@@ -9680,14 +9689,14 @@ microarrays or GRanges for sequencing data.")
(define-public r-gage
(package
(name "r-gage")
- (version "2.28.0")
+ (version "2.28.2")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "gage" version))
(sha256
(base32
- "1r14p88q3y736pkqm4pdimf1izy1xy3xgivmj3cr4dv65kjny1zk"))))
+ "0h0mlhns9j7cpfksvdlvx9jb7szm3r1dwqb3s4s8p8hmkb9byyii"))))
(build-system r-build-system)
(propagated-inputs
`(("r-annotationdbi" ,r-annotationdbi)
@@ -9801,14 +9810,14 @@ originally made available by Holmes, Harris, and Quince, 2012, PLoS ONE 7(2):
(define-public r-ensembldb
(package
(name "r-ensembldb")
- (version "2.2.0")
+ (version "2.2.2")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "ensembldb" version))
(sha256
(base32
- "1w0lca3ws5j770bmls91cn93lznvv2pc8s42nybdzz3vdxjvb4m1"))))
+ "1yngndkf3588z91z0a2fvkg423p26ajm6xv1p27x0l9mzhhaqq3k"))))
(build-system r-build-system)
(propagated-inputs
`(("r-annotationdbi" ,r-annotationdbi)
@@ -9970,14 +9979,14 @@ interval to data view, mismatch pileup, and several splicing summaries.")
(define-public r-gprofiler
(package
(name "r-gprofiler")
- (version "0.6.1")
+ (version "0.6.4")
(source
(origin
(method url-fetch)
(uri (cran-uri "gProfileR" version))
(sha256
(base32
- "1qix15d0wa9nspdclcawml94mng4qmr2jciv7d24py315wfsvv8p"))))
+ "1cka02zbz1rbppm782qpxk1xn9qxbrv2gp5rgf970j906hxm2y0b"))))
(properties `((upstream-name . "gProfileR")))
(build-system r-build-system)
(propagated-inputs
@@ -10209,14 +10218,14 @@ family of feature/genome hypotheses.")
(define-public r-gviz
(package
(name "r-gviz")
- (version "1.22.2")
+ (version "1.22.3")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "Gviz" version))
(sha256
(base32
- "173n99mc95sij2vb8n3xd016x7mxhjs961q3l29xkg1lrnnm2sva"))))
+ "1grjzrjpzkw572pbvpsvdnfkfgwybl0cnjd7nnk2xdr26wnbsi9a"))))
(properties `((upstream-name . "Gviz")))
(build-system r-build-system)
(propagated-inputs
@@ -10396,6 +10405,289 @@ problems in genomics, brain imaging, astrophysics, and data mining.")
;; Any version of the LGPL.
(license license:lgpl3+)))
+(define-public r-hdf5array
+ (package
+ (name "r-hdf5array")
+ (version "1.6.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (bioconductor-uri "HDF5Array" version))
+ (sha256
+ (base32
+ "0kcdza41saqv6vlpvqd841awbiwkg84lh0plx6c7fmfgbqv7a0jh"))))
+ (properties `((upstream-name . "HDF5Array")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-biocgenerics" ,r-biocgenerics)
+ ("r-delayedarray" ,r-delayedarray)
+ ("r-iranges" ,r-iranges)
+ ("r-rhdf5" ,r-rhdf5)
+ ("r-s4vectors" ,r-s4vectors)))
+ (home-page "https://bioconductor.org/packages/HDF5Array")
+ (synopsis "HDF5 back end for DelayedArray objects")
+ (description "This package provides an array-like container for convenient
+access and manipulation of HDF5 datasets. It supports delayed operations and
+block processing.")
+ (license license:artistic2.0)))
+
+(define-public r-rhdf5lib
+ (package
+ (name "r-rhdf5lib")
+ (version "1.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (bioconductor-uri "Rhdf5lib" version))
+ (sha256
+ (base32
+ "0kkc4rprjbqn2wvbx4d49kk9l91vihccxbl4843qr1wqk6v33r1w"))))
+ (properties `((upstream-name . "Rhdf5lib")))
+ (build-system r-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'do-not-use-bundled-hdf5
+ (lambda* (#:key inputs #:allow-other-keys)
+ (for-each delete-file '("configure" "configure.ac"))
+ ;; Do not make other packages link with the proprietary libsz.
+ (substitute* "R/zzz.R"
+ (("'%s/libhdf5_cpp.a %s/libhdf5.a %s/libsz.a'")
+ "'%s/libhdf5_cpp.a %s/libhdf5.a %s/libhdf5.a'")
+ (("'%s/libhdf5.a %s/libsz.a'")
+ "'%s/libhdf5.a %s/libhdf5.a'"))
+ (with-directory-excursion "src"
+ (invoke "tar" "xvf" (assoc-ref inputs "hdf5-source"))
+ (rename-file (string-append "hdf5-" ,(package-version hdf5))
+ "hdf5")
+ (rename-file "Makevars.in" "Makevars")
+ (substitute* "Makevars"
+ (("HDF5_CXX_LIB=.*")
+ (string-append "HDF5_CXX_LIB="
+ (assoc-ref inputs "hdf5") "/lib/libhdf5_cpp.a\n"))
+ (("HDF5_LIB=.*")
+ (string-append "HDF5_LIB="
+ (assoc-ref inputs "hdf5") "/lib/libhdf5.a\n"))
+ (("HDF5_CXX_INCLUDE=.*") "HDF5_CXX_INCLUDE=./hdf5/c++/src\n")
+ (("HDF5_INCLUDE=.*") "HDF5_INCLUDE=./hdf5/src\n")
+ ;; szip is non-free software
+ (("cp \\$\\{SZIP_LIB\\}.*") "")
+ (("PKG_LIBS = \\$\\{HDF5_LIB\\} \\$\\{SZIP_LIB\\}")
+ "PKG_LIBS = ${HDF5_LIB}\n")))
+ #t)))))
+ (inputs
+ `(("zlib" ,zlib)))
+ (propagated-inputs
+ `(("hdf5" ,hdf5)))
+ (native-inputs
+ `(("hdf5-source" ,(package-source hdf5))))
+ (home-page "https://bioconductor.org/packages/Rhdf5lib")
+ (synopsis "HDF5 library as an R package")
+ (description "This package provides C and C++ HDF5 libraries for use in R
+packages.")
+ (license license:artistic2.0)))
+
+(define-public r-beachmat
+ (package
+ (name "r-beachmat")
+ (version "1.0.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (bioconductor-uri "beachmat" version))
+ (sha256
+ (base32
+ "0b6dzja5fbx4dawb7ixj67mlhw4fy62pfp20mfp918fy96zmdwqz"))))
+ (build-system r-build-system)
+ (inputs
+ `(("hdf5" ,hdf5)))
+ (propagated-inputs
+ `(("r-delayedarray" ,r-delayedarray)
+ ("r-hdf5array" ,r-hdf5array)
+ ("r-rcpp" ,r-rcpp)
+ ("r-rhdf5" ,r-rhdf5)
+ ("r-rhdf5lib" ,r-rhdf5lib)))
+ (home-page "https://bioconductor.org/packages/beachmat")
+ (synopsis "Compiling Bioconductor to handle each matrix type")
+ (description "This package provides a consistent C++ class interface for a
+variety of commonly used matrix types, including sparse and HDF5-backed
+matrices.")
+ (license license:gpl3)))
+
+(define-public r-singlecellexperiment
+ (package
+ (name "r-singlecellexperiment")
+ (version "1.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (bioconductor-uri "SingleCellExperiment" version))
+ (sha256
+ (base32
+ "1r276i97w64a5vdlg6952gkj7bls909p42zl8fn8yz87cdwyaars"))))
+ (properties
+ `((upstream-name . "SingleCellExperiment")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-biocgenerics" ,r-biocgenerics)
+ ("r-s4vectors" ,r-s4vectors)
+ ("r-summarizedexperiment" ,r-summarizedexperiment)))
+ (home-page "https://bioconductor.org/packages/SingleCellExperiment")
+ (synopsis "S4 classes for single cell data")
+ (description "This package defines an S4 class for storing data from
+single-cell experiments. This includes specialized methods to store and
+retrieve spike-in information, dimensionality reduction coordinates and size
+factors for each cell, along with the usual metadata for genes and
+libraries.")
+ (license license:gpl3)))
+
+(define-public r-scater
+ (package
+ (name "r-scater")
+ (version "1.6.3")
+ (source (origin
+ (method url-fetch)
+ (uri (bioconductor-uri "scater" version))
+ (sha256
+ (base32
+ "0q3s96gf8saa1dq2fvmpl0jyj7bx3wrdfck3hanb8pxkcir2p7dn"))))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-beachmat" ,r-beachmat)
+ ("r-biobase" ,r-biobase)
+ ("r-biocgenerics" ,r-biocgenerics)
+ ("r-biomart" ,r-biomart)
+ ("r-data-table" ,r-data-table)
+ ("r-dplyr" ,r-dplyr)
+ ("r-edger" ,r-edger)
+ ("r-ggbeeswarm" ,r-ggbeeswarm)
+ ("r-ggplot2" ,r-ggplot2)
+ ("r-limma" ,r-limma)
+ ("r-matrix" ,r-matrix)
+ ("r-matrixstats" ,r-matrixstats)
+ ("r-plyr" ,r-plyr)
+ ("r-rcpp" ,r-rcpp)
+ ("r-reshape2" ,r-reshape2)
+ ("r-rhdf5" ,r-rhdf5)
+ ("r-rhdf5lib" ,r-rhdf5lib)
+ ("r-rjson" ,r-rjson)
+ ("r-s4vectors" ,r-s4vectors)
+ ("r-shiny" ,r-shiny)
+ ("r-shinydashboard" ,r-shinydashboard)
+ ("r-singlecellexperiment" ,r-singlecellexperiment)
+ ("r-summarizedexperiment" ,r-summarizedexperiment)
+ ("r-tximport" ,r-tximport)
+ ("r-viridis" ,r-viridis)))
+ (home-page "https://github.com/davismcc/scater")
+ (synopsis "Single-cell analysis toolkit for gene expression data in R")
+ (description "This package provides a collection of tools for doing
+various analyses of single-cell RNA-seq gene expression data, with a focus on
+quality control.")
+ (license license:gpl2+)))
+
+(define-public r-scran
+ (package
+ (name "r-scran")
+ (version "1.6.7")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (bioconductor-uri "scran" version))
+ (sha256
+ (base32
+ "0zfm5i8xrnzb3894xygqd6zkbwaa2x3z74wbxw39fcjhyhxv2hmb"))))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-beachmat" ,r-beachmat)
+ ("r-biocgenerics" ,r-biocgenerics)
+ ("r-biocparallel" ,r-biocparallel)
+ ("r-dt" ,r-dt)
+ ("r-dynamictreecut" ,r-dynamictreecut)
+ ("r-edger" ,r-edger)
+ ("r-fnn" ,r-fnn)
+ ("r-ggplot2" ,r-ggplot2)
+ ("r-igraph" ,r-igraph)
+ ("r-limma" ,r-limma)
+ ("r-matrix" ,r-matrix)
+ ("r-rcpp" ,r-rcpp)
+ ("r-rhdf5lib" ,r-rhdf5lib)
+ ("r-s4vectors" ,r-s4vectors)
+ ("r-scater" ,r-scater)
+ ("r-shiny" ,r-shiny)
+ ("r-singlecellexperiment" ,r-singlecellexperiment)
+ ("r-statmod" ,r-statmod)
+ ("r-summarizedexperiment" ,r-summarizedexperiment)
+ ("r-viridis" ,r-viridis)
+ ("r-zoo" ,r-zoo)))
+ (home-page "https://bioconductor.org/packages/scran")
+ (synopsis "Methods for single-cell RNA-Seq data analysis")
+ (description "This package implements a variety of low-level analyses of
+single-cell RNA-seq data. Methods are provided for normalization of
+cell-specific biases, assignment of cell cycle phase, and detection of highly
+variable and significantly correlated genes.")
+ (license license:gpl3)))
+
+(define-public r-delayedmatrixstats
+ (package
+ (name "r-delayedmatrixstats")
+ (version "1.0.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (bioconductor-uri "DelayedMatrixStats" version))
+ (sha256
+ (base32
+ "1cxjbjdq9hg9cm95rci0al7a4pk2h73ym276ahw9q4977zbg6381"))))
+ (properties
+ `((upstream-name . "DelayedMatrixStats")))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-delayedarray" ,r-delayedarray)
+ ("r-iranges" ,r-iranges)
+ ("r-matrix" ,r-matrix)
+ ("r-matrixstats" ,r-matrixstats)
+ ("r-s4vectors" ,r-s4vectors)))
+ (home-page "https://github.com/PeteHaitch/DelayedMatrixStats")
+ (synopsis "Functions that apply to rows and columns of DelayedMatrix objects")
+ (description
+ "This package provides a port of the @code{matrixStats} API for use with
+@code{DelayedMatrix} objects from the @code{DelayedArray} package. It
+contains high-performing functions operating on rows and columns of
+@code{DelayedMatrix} objects, e.g. @code{colMedians}, @code{rowMedians},
+@code{colRanks}, @code{rowRanks}, @code{colSds}, and @code{rowSds}. Functions
+are optimized per data type and for subsetted calculations such that both
+memory usage and processing time is minimized.")
+ (license license:expat)))
+
+(define-public r-dropbead
+ (let ((commit "cf0be5ae5302684bd03e78ab65b142900bbbb840")
+ (revision "1"))
+ (package
+ (name "r-dropbead")
+ (version (string-append "0-" revision "." (string-take commit 7)))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/rajewsky-lab/dropbead.git")
+ (commit commit)))
+ (sha256
+ (base32
+ "1b2lphsc236s1rdzlijxg8yl1jnqpwcvj4x938r89rqpj93jb780"))))
+ (build-system r-build-system)
+ (propagated-inputs
+ `(("r-ggplot2" ,r-ggplot2)
+ ("r-rcolorbrewer" ,r-rcolorbrewer)
+ ("r-gridextra" ,r-gridextra)
+ ("r-gplots" ,r-gplots)
+ ("r-plyr" ,r-plyr)))
+ (home-page "https://github.com/rajewsky-lab/dropbead")
+ (synopsis "Basic exploration and analysis of Drop-seq data")
+ (description "This package offers a quick and straight-forward way to
+explore and perform basic analysis of single cell sequencing data coming from
+droplet sequencing. It has been particularly tailored for Drop-seq.")
+ (license license:gpl3))))
+
(define htslib-for-sambamba
(let ((commit "2f3c3ea7b301f9b45737a793c0b2dcf0240e5ee5"))
(package
@@ -11106,3 +11398,491 @@ for alignment. Pseudoalignment of reads preserves the key information needed
for quantification, and kallisto is therefore not only fast, but also as
accurate as existing quantification tools.")
(license license:bsd-2)))
+
+(define-public libgff
+ (package
+ (name "libgff")
+ (version "1.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/Kingsford-Group/"
+ "libgff/archive/v" version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0vc4nxyhlm6g9vvmx5l4lfs5pnvixsv1hiiy4kddf2y3p6jna8ls"))))
+ (build-system cmake-build-system)
+ (arguments `(#:tests? #f)) ; no tests included
+ (home-page "https://github.com/Kingsford-Group/libgff")
+ (synopsis "Parser library for reading/writing GFF files")
+ (description "This is a simple \"libraryfication\" of the GFF/GTF parsing
+code that is used in the Cufflinks codebase. The goal of this library is to
+provide this functionality without the necessity of drawing in a heavy-weight
+dependency like SeqAn.")
+ (license (license:x11-style "http://www.boost.org/LICENSE_1_0.txt"))))
+
+(define-public libdivsufsort
+ (package
+ (name "libdivsufsort")
+ (version "2.0.1")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/y-256/libdivsufsort.git")
+ (commit version)))
+ (sha256
+ (base32
+ "0fgdz9fzihlvjjrxy01md1bv9vh12rkgkwbm90b1hj5xpbaqp7z2"))))
+ (build-system cmake-build-system)
+ (arguments
+ '(#:tests? #f ; there are no tests
+ #:configure-flags
+ ;; Needed for rapmap and sailfish.
+ '("-DBUILD_DIVSUFSORT64=ON")))
+ (home-page "https://github.com/y-256/libdivsufsort")
+ (synopsis "Lightweight suffix-sorting library")
+ (description "libdivsufsort is a software library that implements a
+lightweight suffix array construction algorithm. This library provides a
+simple and an efficient C API to construct a suffix array and a
+Burrows-Wheeler transformed string from a given string over a constant-size
+alphabet. The algorithm runs in O(n log n) worst-case time using only 5n+O(1)
+bytes of memory space, where n is the length of the string.")
+ (license license:expat)))
+
+(define-public sailfish
+ (package
+ (name "sailfish")
+ (version "0.10.1")
+ (source (origin
+ (method url-fetch)
+ (uri
+ (string-append "https://github.com/kingsfordgroup/"
+ "sailfish/archive/v" version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1inn60dxiwsz8g9w7kvfhjxj4bwfb0r12dyhpzzhfbig712dkmm0"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; Delete bundled headers for eigen3.
+ (delete-file-recursively "include/eigen3/")
+ #t))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:configure-flags
+ (list (string-append "-DBOOST_INCLUDEDIR="
+ (assoc-ref %build-inputs "boost")
+ "/include/")
+ (string-append "-DBOOST_LIBRARYDIR="
+ (assoc-ref %build-inputs "boost")
+ "/lib/")
+ (string-append "-DBoost_LIBRARIES="
+ "-lboost_iostreams "
+ "-lboost_filesystem "
+ "-lboost_system "
+ "-lboost_thread "
+ "-lboost_timer "
+ "-lboost_chrono "
+ "-lboost_program_options")
+ "-DBoost_FOUND=TRUE"
+ ;; Don't download RapMap---we already have it!
+ "-DFETCHED_RAPMAP=1")
+ ;; Tests must be run after installation and the location of the test
+ ;; data file must be overridden. But the tests fail. It looks like
+ ;; they are not really meant to be run.
+ #:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ ;; Boost cannot be found, even though it's right there.
+ (add-after 'unpack 'do-not-look-for-boost
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "CMakeLists.txt"
+ (("find_package\\(Boost 1\\.53\\.0") "#"))))
+ (add-after 'unpack 'do-not-assign-to-macro
+ (lambda _
+ (substitute* "include/spdlog/details/format.cc"
+ (("const unsigned CHAR_WIDTH = 1;") ""))))
+ (add-after 'unpack 'prepare-rapmap
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((src "external/install/src/rapmap/")
+ (include "external/install/include/rapmap/")
+ (rapmap (assoc-ref inputs "rapmap")))
+ (mkdir-p "/tmp/rapmap")
+ (system* "tar" "xf"
+ (assoc-ref inputs "rapmap")
+ "-C" "/tmp/rapmap"
+ "--strip-components=1")
+ (mkdir-p src)
+ (mkdir-p include)
+ (for-each (lambda (file)
+ (install-file file src))
+ (find-files "/tmp/rapmap/src" "\\.(c|cpp)"))
+ (copy-recursively "/tmp/rapmap/include" include))))
+ (add-after 'unpack 'use-system-libraries
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* '("src/SailfishIndexer.cpp"
+ "src/SailfishUtils.cpp"
+ "src/SailfishQuantify.cpp"
+ "src/FASTAParser.cpp"
+ "include/PCA.hpp"
+ "include/SailfishUtils.hpp"
+ "include/SailfishIndex.hpp"
+ "include/CollapsedEMOptimizer.hpp"
+ "src/CollapsedEMOptimizer.cpp")
+ (("#include \"jellyfish/config.h\"") ""))
+ (substitute* "src/CMakeLists.txt"
+ (("\\$\\{GAT_SOURCE_DIR\\}/external/install/include/jellyfish-2.2..")
+ (string-append (assoc-ref inputs "jellyfish")
+ "/include/jellyfish-" ,(package-version jellyfish)))
+ (("\\$\\{GAT_SOURCE_DIR\\}/external/install/lib/libjellyfish-2.0.a")
+ (string-append (assoc-ref inputs "jellyfish")
+ "/lib/libjellyfish-2.0.a"))
+ (("\\$\\{GAT_SOURCE_DIR\\}/external/install/lib/libdivsufsort.a")
+ (string-append (assoc-ref inputs "libdivsufsort")
+ "/lib/libdivsufsort.so"))
+ (("\\$\\{GAT_SOURCE_DIR\\}/external/install/lib/libdivsufsort64.a")
+ (string-append (assoc-ref inputs "libdivsufsort")
+ "/lib/libdivsufsort64.so")))
+ (substitute* "CMakeLists.txt"
+ ;; Don't prefer static libs
+ (("SET\\(CMAKE_FIND_LIBRARY_SUFFIXES.*") "")
+ (("find_package\\(Jellyfish.*") "")
+ (("ExternalProject_Add\\(libjellyfish") "message(")
+ (("ExternalProject_Add\\(libgff") "message(")
+ (("ExternalProject_Add\\(libsparsehash") "message(")
+ (("ExternalProject_Add\\(libdivsufsort") "message("))
+
+ ;; Ensure that Eigen headers can be found
+ (setenv "CPLUS_INCLUDE_PATH"
+ (string-append (getenv "CPLUS_INCLUDE_PATH")
+ ":"
+ (assoc-ref inputs "eigen")
+ "/include/eigen3")))))))
+ (inputs
+ `(("boost" ,boost)
+ ("eigen" ,eigen)
+ ("jemalloc" ,jemalloc)
+ ("jellyfish" ,jellyfish)
+ ("sparsehash" ,sparsehash)
+ ("rapmap" ,(origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/COMBINE-lab/RapMap.git")
+ (commit (string-append "sf-v" version))))
+ (file-name (string-append "rapmap-sf-v" version "-checkout"))
+ (sha256
+ (base32
+ "1hv79l5i576ykv5a1srj2p0q36yvyl5966m0fcy2lbi169ipjakf"))
+ (modules '((guix build utils)))
+ ;; These files are expected to be excluded.
+ (snippet
+ '(begin (delete-file-recursively "include/spdlog")
+ (for-each delete-file '("include/xxhash.h"
+ "src/xxhash.c"))))))
+ ("libdivsufsort" ,libdivsufsort)
+ ("libgff" ,libgff)
+ ("tbb" ,tbb)
+ ("zlib" ,zlib)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (home-page "http://www.cs.cmu.edu/~ckingsf/software/sailfish")
+ (synopsis "Mapping-based isoform quantification from RNA-Seq reads")
+ (description "Sailfish is a tool for genomic transcript quantification
+from RNA-seq data. It requires a set of target transcripts (either from a
+reference or de-novo assembly) to quantify. All you need to run sailfish is a
+fasta file containing your reference transcripts and a (set of) fasta/fastq
+file(s) containing your reads.")
+ (license license:gpl3+)))
+
+(define libstadenio-for-salmon
+ (package
+ (name "libstadenio")
+ (version "1.14.8")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/COMBINE-lab/staden-io_lib.git")
+ (commit (string-append "v" version))))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "1x8kxxqxl892vwfbprlbyfwkkv7c34ggkc94892x9x0g37x5nbwx"))))
+ (build-system gnu-build-system)
+ (arguments '(#:parallel-tests? #f)) ; not supported
+ (inputs
+ `(("zlib" ,zlib)))
+ (native-inputs
+ `(("perl" ,perl))) ; for tests
+ (home-page "https://github.com/COMBINE-lab/staden-io_lib")
+ (synopsis "General purpose trace and experiment file library")
+ (description "This package provides a library of file reading and writing
+code to provide a general purpose Trace file (and Experiment File) reading
+interface.
+
+The following file formats are supported:
+
+@enumerate
+@item SCF trace files
+@item ABI trace files
+@item ALF trace files
+@item ZTR trace files
+@item SFF trace archives
+@item SRF trace archives
+@item Experiment files
+@item Plain text files
+@item SAM/BAM sequence files
+@item CRAM sequence files
+@end enumerate\n")
+ (license license:bsd-3)))
+
+(define spdlog-for-salmon
+ (package
+ (name "spdlog")
+ (version "0.14.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/COMBINE-lab/spdlog.git")
+ (commit (string-append "v" version))))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "13730429gwlabi432ilpnja3sfvy0nn2719vnhhmii34xcdyc57q"))))
+ (build-system cmake-build-system)
+ (home-page "https://github.com/COMBINE-lab/spdlog")
+ (synopsis "Very fast C++ logging library")
+ (description "Spdlog is a very fast header-only C++ logging library with
+performance as its primary goal.")
+ (license license:expat)))
+
+;; This is a modified variant of bwa for use with Salmon. It installs a
+;; library to avoid having to build this as part of Salmon.
+(define bwa-for-salmon
+ (package (inherit bwa)
+ (name "bwa")
+ (version "0.7.12.5")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/COMBINE-lab/bwa.git")
+ (commit (string-append "v" version))))
+ (file-name (string-append "bwa-for-salmon-" version "-checkout"))
+ (sha256
+ (base32
+ "1z2qa64y0c5hky10510x137mnzlhz6k8qf27csw4w9j6qihq95gb"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:tests? #f ;no "check" target
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin"))
+ (lib (string-append out "/lib"))
+ (doc (string-append out "/share/doc/bwa"))
+ (man (string-append out "/share/man/man1"))
+ (inc (string-append out "/include/bwa")))
+ (install-file "bwa" bin)
+ (install-file "README.md" doc)
+ (install-file "bwa.1" man)
+ (install-file "libbwa.a" lib)
+ (mkdir-p lib)
+ (mkdir-p inc)
+ (for-each (lambda (file)
+ (install-file file inc))
+ (find-files "." "\\.h$")))
+ #t))
+ ;; no "configure" script
+ (delete 'configure))))))
+
+(define-public salmon
+ (package
+ (name "salmon")
+ (version "0.9.1")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/COMBINE-lab/salmon.git")
+ (commit (string-append "v" version))))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "1zi1ff4i7y2ykk0vdzysgwzzzv166vg2x77pj1mf4baclavxj87a"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; Delete bundled headers for eigen3.
+ (delete-file-recursively "include/eigen3/")
+ #t))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:configure-flags
+ (list (string-append "-DBOOST_INCLUDEDIR="
+ (assoc-ref %build-inputs "boost")
+ "/include/")
+ (string-append "-DBOOST_LIBRARYDIR="
+ (assoc-ref %build-inputs "boost")
+ "/lib/")
+ (string-append "-DBoost_LIBRARIES="
+ "-lboost_iostreams "
+ "-lboost_filesystem "
+ "-lboost_system "
+ "-lboost_thread "
+ "-lboost_timer "
+ "-lboost_chrono "
+ "-lboost_program_options")
+ "-DBoost_FOUND=TRUE"
+ "-DTBB_LIBRARIES=tbb tbbmalloc"
+ ;; Don't download RapMap---we already have it!
+ "-DFETCHED_RAPMAP=1")
+ #:phases
+ (modify-phases %standard-phases
+ ;; Boost cannot be found, even though it's right there.
+ (add-after 'unpack 'do-not-look-for-boost
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "CMakeLists.txt"
+ (("find_package\\(Boost 1\\.53\\.0") "#"))))
+ (add-after 'unpack 'do-not-phone-home
+ (lambda _
+ (substitute* "src/Salmon.cpp"
+ (("getVersionMessage\\(\\)") "\"\""))))
+ (add-after 'unpack 'prepare-rapmap
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((src "external/install/src/rapmap/")
+ (include "external/install/include/rapmap/")
+ (rapmap (assoc-ref inputs "rapmap")))
+ (mkdir-p src)
+ (mkdir-p include)
+ (for-each (lambda (file)
+ (install-file file src))
+ (find-files (string-append rapmap "/src") "\\.(c|cpp)"))
+ (copy-recursively (string-append rapmap "/include") include)
+ (for-each delete-file '("external/install/include/rapmap/xxhash.h"
+ "external/install/include/rapmap/FastxParser.hpp"
+ "external/install/include/rapmap/concurrentqueue.h"
+ "external/install/include/rapmap/FastxParserThreadUtils.hpp"
+ "external/install/src/rapmap/FastxParser.cpp"
+ "external/install/src/rapmap/xxhash.c")))))
+ (add-after 'unpack 'use-system-libraries
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "src/CMakeLists.txt"
+ (("\\$\\{GAT_SOURCE_DIR\\}/external/install/include/jellyfish-2.2..")
+ (string-append (assoc-ref inputs "jellyfish")
+ "/include/jellyfish-" ,(package-version jellyfish)))
+ (("\\$\\{GAT_SOURCE_DIR\\}/external/install/lib/libjellyfish-2.0.a")
+ (string-append (assoc-ref inputs "jellyfish")
+ "/lib/libjellyfish-2.0.a"))
+ (("\\$\\{GAT_SOURCE_DIR\\}/external/install/lib/libdivsufsort.a")
+ (string-append (assoc-ref inputs "libdivsufsort")
+ "/lib/libdivsufsort.so"))
+ (("\\$\\{GAT_SOURCE_DIR\\}/external/install/lib/libstaden-read.a")
+ (string-append (assoc-ref inputs "libstadenio-for-salmon")
+ "/lib/libstaden-read.a"))
+ (("\\$\\{GAT_SOURCE_DIR\\}/external/install/lib/libbwa.a")
+ (string-append (assoc-ref inputs "bwa") "/lib/libbwa.a"))
+ (("\\$\\{GAT_SOURCE_DIR\\}/external/install/lib/libdivsufsort64.a")
+ (string-append (assoc-ref inputs "libdivsufsort")
+ "/lib/libdivsufsort64.so")))
+ (substitute* "CMakeLists.txt"
+ ;; Don't prefer static libs
+ (("SET\\(CMAKE_FIND_LIBRARY_SUFFIXES.*") "")
+ (("set\\(TBB_LIBRARIES") "message(")
+ (("find_package\\(Jellyfish.*") "")
+ (("ExternalProject_Add\\(libcereal") "message(")
+ (("ExternalProject_Add\\(libbwa") "message(")
+ (("ExternalProject_Add\\(libjellyfish") "message(")
+ (("ExternalProject_Add\\(libgff") "message(")
+ (("ExternalProject_Add\\(libtbb") "message(")
+ (("ExternalProject_Add\\(libspdlog") "message(")
+ (("ExternalProject_Add\\(libdivsufsort") "message(")
+ (("ExternalProject_Add\\(libstadenio") "message(")
+ (("ExternalProject_Add_Step\\(") "message("))
+
+ ;; Ensure that all headers can be found
+ (setenv "CPLUS_INCLUDE_PATH"
+ (string-append (getenv "CPLUS_INCLUDE_PATH")
+ ":"
+ (assoc-ref inputs "bwa")
+ "/include/bwa"
+ ":"
+ (assoc-ref inputs "eigen")
+ "/include/eigen3"))
+ (setenv "CPATH"
+ (string-append (assoc-ref inputs "bwa")
+ "/include/bwa"
+ ":"
+ (assoc-ref inputs "eigen")
+ "/include/eigen3"))
+ #t))
+ ;; CMAKE_INSTALL_PREFIX does not exist when the tests are
+ ;; run. It only exists after the install phase.
+ (add-after 'unpack 'fix-tests
+ (lambda _
+ (substitute* "src/CMakeLists.txt"
+ (("DTOPLEVEL_DIR=\\$\\{CMAKE_INSTALL_PREFIX")
+ "DTOPLEVEL_DIR=${GAT_SOURCE_DIR"))
+ #t)))))
+ (inputs
+ `(("boost" ,boost)
+ ("bwa" ,bwa-for-salmon)
+ ("bzip2" ,bzip2)
+ ("cereal" ,cereal)
+ ("eigen" ,eigen)
+ ("rapmap" ,(origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/COMBINE-lab/RapMap.git")
+ (commit (string-append "salmon-v" version))))
+ (file-name (string-append "rapmap-salmon-v" version "-checkout"))
+ (sha256
+ (base32
+ "1yc12yqsz6f0r8sg1qnk57xg34aqwc9jbqq6gd5ys28xw3plj98p"))))
+ ("jemalloc" ,jemalloc)
+ ("jellyfish" ,jellyfish)
+ ("libgff" ,libgff)
+ ("tbb" ,tbb)
+ ("libdivsufsort" ,libdivsufsort)
+ ("libstadenio-for-salmon" ,libstadenio-for-salmon)
+ ("spdlog-for-salmon" ,spdlog-for-salmon)
+ ("xz" ,xz)
+ ("zlib" ,zlib)))
+ (home-page "https://github.com/COMBINE-lab/salmon")
+ (synopsis "Quantification from RNA-seq reads using lightweight alignments")
+ (description "Salmon is a program to produce highly-accurate,
+transcript-level quantification estimates from RNA-seq data. Salmon achieves
+its accuracy and speed via a number of different innovations, including the
+use of lightweight alignments (accurate but fast-to-compute proxies for
+traditional read alignments) and massively-parallel stochastic collapsed
+variational inference.")
+ (license license:gpl3+)))
+
+(define-public python-loompy
+ (package
+ (name "python-loompy")
+ (version "2.0.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "loompy" version))
+ (sha256
+ (base32
+ "1drgv8j1hxqzzpnfg272x9djb6j8qr798w1pc2x8ikmfgyd9gh51"))))
+ (build-system python-build-system)
+ ;; There are no tests
+ (arguments '(#:tests? #f))
+ (propagated-inputs
+ `(("python-h5py" ,python-h5py)
+ ("python-numpy" ,python-numpy)
+ ("python-scipy" ,python-scipy)
+ ("python-typing" ,python-typing)))
+ (home-page "https://github.com/linnarsson-lab/loompy")
+ (synopsis "Work with .loom files for single-cell RNA-seq data")
+ (description "The loom file format is an efficient format for very large
+omics datasets, consisting of a main matrix, optional additional layers, a
+variable number of row and column annotations. Loom also supports sparse
+graphs. This library makes it easy to work with @file{.loom} files for
+single-cell RNA-seq data.")
+ (license license:bsd-3)))