diff options
Diffstat (limited to 'gnu/packages/bioinformatics.scm')
-rw-r--r-- | gnu/packages/bioinformatics.scm | 938 |
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))) |