gnu: webkitgtk: Update to 2.28.2.
[jackhill/guix/guix.git] / gnu / packages / bioinformatics.scm
index c545b81..b9be0c1 100644 (file)
@@ -1,19 +1,22 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020 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, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2020 Marius Bakke <mbakke@fastmail.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>
 ;;; Copyright © 2018 Joshua Sierles, Nextjournal <joshua@nextjournal.com>
 ;;; Copyright © 2018 Gábor Boskovits <boskovits@gmail.com>
-;;; Copyright © 2018 Mădălin Ionel Patrașcu <madalinionel.patrascu@mdc-berlin.de>
+;;; Copyright © 2018, 2019 Mădălin Ionel Patrașcu <madalinionel.patrascu@mdc-berlin.de>
 ;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2019 Brian Leung <bkleung89@gmail.com>
+;;; Copyright © 2019 Brett Gilio <brettg@gnu.org>
+;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
+;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -40,6 +43,7 @@
   #:use-module (guix build-system ant)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system cmake)
+  #:use-module (guix build-system go)
   #:use-module (guix build-system haskell)
   #:use-module (guix build-system meson)
   #:use-module (guix build-system ocaml)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages datastructures)
+  #:use-module (gnu packages dlang)
   #:use-module (gnu packages file)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages gawk)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages gd)
-  #:use-module (gnu packages gtk)
+  #:use-module (gnu packages golang)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages graph)
   #:use-module (gnu packages groff)
+  #:use-module (gnu packages gtk)
   #:use-module (gnu packages guile)
   #:use-module (gnu packages guile-xyz)
   #:use-module (gnu packages haskell-check)
   #:use-module (gnu packages imagemagick)
   #:use-module (gnu packages java)
   #:use-module (gnu packages java-compression)
-  #:use-module (gnu packages javascript)
   #:use-module (gnu packages jemalloc)
-  #:use-module (gnu packages dlang)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages lisp-xyz)
   #:use-module (gnu packages logging)
   #:use-module (gnu packages machine-learning)
   #:use-module (gnu packages man)
@@ -260,7 +265,7 @@ structure of the predicted RNA.")
        ("coreutils" ,coreutils)))
     (propagated-inputs
      `(("python-numpy" ,python2-numpy)))
-    (home-page "http://ecogenomics.github.io/BamM/")
+    (home-page "https://ecogenomics.github.io/BamM/")
     (synopsis "Metagenomics-focused BAM file manipulator")
     (description
      "BamM is a C library, wrapped in python, to efficiently generate and
@@ -409,7 +414,7 @@ computational cluster.")
 (define-public bedtools
   (package
     (name "bedtools")
-    (version "2.27.1")
+    (version "2.29.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/arq5x/bedtools2/releases/"
@@ -417,7 +422,7 @@ computational cluster.")
                                   "bedtools-" version ".tar.gz"))
               (sha256
                (base32
-                "1ndg5yknrxl4djx8ddzgk12rrbiidfpmkkg5z3f95jzryfxarhn8"))))
+                "0m3hk6548846w83a9s5drsczvy67n2azx41kj71n03klb2gbzwg3"))))
     (build-system gnu-build-system)
     (arguments
      '(#:test-target "test"
@@ -426,7 +431,8 @@ computational cluster.")
        #:phases
        (modify-phases %standard-phases
          (delete 'configure))))
-    (native-inputs `(("python" ,python-2)))
+    (native-inputs
+     `(("python" ,python-wrapper)))
     (inputs
      `(("samtools" ,samtools)
        ("zlib" ,zlib)))
@@ -439,7 +445,7 @@ genome arithmetic: that is, set theory on the genome.  For example, bedtools
 allows one to intersect, merge, count, complement, and shuffle genomic
 intervals from multiple files in widely-used genomic file formats such as BAM,
 BED, GFF/GTF, VCF.")
-    (license license:gpl2)))
+    (license license:expat)))
 
 ;; Later releases of bedtools produce files with more columns than
 ;; what Ribotaper expects.
@@ -725,7 +731,7 @@ provides the Ribotaper pipeline.")
     (native-inputs
      `(("python-mock" ,python2-mock)
        ("python-nose" ,python2-nose)))
-    (home-page "http://public.bmi.inf.ethz.ch/user/zhongy/RiboDiff/")
+    (home-page "https://public.bmi.inf.ethz.ch/user/zhongy/RiboDiff/")
     (synopsis "Detect translation efficiency changes from ribosome footprints")
     (description "RiboDiff is a statistical tool that detects the protein
 translational efficiency change from Ribo-Seq (ribosome footprinting) and
@@ -782,13 +788,13 @@ intended to behave exactly the same as the original BWK awk.")
 (define-public python-pybedtools
   (package
     (name "python-pybedtools")
-    (version "0.8.0")
+    (version "0.8.1")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "pybedtools" version))
               (sha256
                (base32
-                "1xl454ijvd4dzfvqgfahad49b49j7qy710fq9xh1rvk42z6x5ssf"))))
+                "14w5i40gi25clrr7h4wa2pcpnyipya8hrqi7nq77553zc5wf0df0"))))
     (build-system python-build-system)
     (arguments
      `(#:modules ((ice-9 ftw)
@@ -815,6 +821,10 @@ intended to behave exactly the same as the original BWK awk.")
                ;; (see: https://github.com/daler/pybedtools/issues/192).
                (("def test_getting_example_beds")
                 "def _do_not_test_getting_example_beds"))
+             ;; This issue still occurs on python2
+             (substitute* "pybedtools/test/test_issues.py"
+               (("def test_issue_303")
+                "def _test_issue_303"))
              #t))
          ;; TODO: Remove phase after it's part of PYTHON-BUILD-SYSTEM.
          ;; build system.
@@ -883,7 +893,12 @@ Python.")
     (license license:gpl2+)))
 
 (define-public python2-pybedtools
-  (package-with-python2 python-pybedtools))
+  (let ((pybedtools (package-with-python2 python-pybedtools)))
+    (package
+      (inherit pybedtools)
+      (native-inputs
+       `(("python2-pathlib" ,python2-pathlib)
+         ,@(package-native-inputs pybedtools))))))
 
 (define-public python-biom-format
   (package
@@ -1055,7 +1070,7 @@ provide a coordinated and extensible framework to do computational biology.")
            (lambda _ (setenv "HOME" "/tmp") #t)))))
     (propagated-inputs
      `(("python-numpy" ,python-numpy)))
-    (home-page "http://biopython.org/")
+    (home-page "https://biopython.org/")
     (synopsis "Tools for biological computation in Python")
     (description
      "Biopython is a set of tools for biological computation including parsers
@@ -1615,7 +1630,7 @@ genome (2.9 GB for paired-end).")
                   #t))))
     (build-system gnu-build-system)
     (arguments
-     '(#:parallel-build? #f ; not supported
+     '(#:parallel-build? #f             ; not supported
        #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'use-system-samtools
@@ -1639,16 +1654,18 @@ genome (2.9 GB for paired-end).")
                (("#include <bam.h>") "#include <samtools/bam.h>")
                (("#include <sam.h>") "#include <samtools/sam.h>"))
              #t)))))
+    (native-inputs
+     `(("gcc" ,gcc-5))) ;; doesn't build with later versions
     (inputs
      `(("boost" ,boost)
        ("bowtie" ,bowtie)
-       ("samtools" ,samtools-0.1)
        ("ncurses" ,ncurses)
-       ("python" ,python-2)
        ("perl" ,perl)
-       ("zlib" ,zlib)
-       ("seqan" ,seqan-1)))
-    (home-page "http://ccb.jhu.edu/software/tophat/index.shtml")
+       ("python" ,python-2)
+       ("samtools" ,samtools-0.1)
+       ("seqan" ,seqan-1)
+       ("zlib" ,zlib)))
+    (home-page "https://ccb.jhu.edu/software/tophat/index.shtml")
     (synopsis "Spliced read mapper for RNA-Seq data")
     (description
      "TopHat is a fast splice junction mapper for nucleotide sequence
@@ -1679,13 +1696,13 @@ splice junctions between exons.")
        (modify-phases %standard-phases
          (replace 'install
            (lambda* (#:key outputs #:allow-other-keys)
-             (let ((bin (string-append
-                         (assoc-ref outputs "out") "/bin"))
-                   (doc (string-append
-                         (assoc-ref outputs "out") "/share/doc/bwa"))
-                   (man (string-append
-                         (assoc-ref outputs "out") "/share/man/man1")))
+             (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")))
                (install-file "bwa" bin)
+               (install-file "libbwa.a" lib)
                (install-file "README.md" doc)
                (install-file "bwa.1" man))
              #t))
@@ -2269,23 +2286,23 @@ time.")
 (define-public crossmap
   (package
     (name "crossmap")
-    (version "0.2.9")
+    (version "0.3.8")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "CrossMap" version))
               (sha256
                (base32
-                "1byhclrqnqpvc1rqkfh4jwj6yhn0x9y7jk47i0qcjlhk0pjkw92p"))))
+                "1sb2f2qbxya4fzw3yjl09vbrs8vfmw22zrygrvz004sf9gb1vkan"))))
     (build-system python-build-system)
-    (arguments `(#:python ,python-2))
     (inputs
-     `(("python-bx-python" ,python2-bx-python)
-       ("python-numpy" ,python2-numpy)
-       ("python-pysam" ,python2-pysam)
+     `(("python-bx-python" ,python-bx-python)
+       ("python-numpy" ,python-numpy)
+       ("python-pybigwig" ,python-pybigwig)
+       ("python-pysam" ,python-pysam)
        ("zlib" ,zlib)))
     (native-inputs
-     `(("python-cython" ,python2-cython)
-       ("python-nose" ,python2-nose)))
+     `(("python-cython" ,python-cython)
+       ("python-nose" ,python-nose)))
     (home-page "http://crossmap.sourceforge.net/")
     (synopsis "Convert genome coordinates between assemblies")
     (description
@@ -2382,13 +2399,13 @@ files.")
 (define-public python-pybigwig
   (package
     (name "python-pybigwig")
-    (version "0.3.12")
+    (version "0.3.17")
     (source (origin
               (method url-fetch)
               (uri (pypi-uri "pyBigWig" version))
               (sha256
                (base32
-                "00w4kfnm2c5l7wdwr2nj1z5djv8kzgf7h1zhsgv6njff1rwr26g0"))
+                "157x6v48y299zm382krf1dw08fdxg95im8lnabhp5vc94s04zxj1"))
               (modules '((guix build utils)))
               (snippet
                '(begin
@@ -2436,7 +2453,7 @@ accessing bigWig files.")
         (base32
          "097hfyv2kaf4x92i4rjx0paw2cncxap48qivv8zxng4z7nhid0x9"))))
     (build-system python-build-system)
-    (home-page "http://packages.python.org/DendroPy/")
+    (home-page "https://dendropy.org/")
     (synopsis "Library for phylogenetics and phylogenetic computing")
     (description
      "DendroPy is a library for phylogenetics and phylogenetic computing: reading,
@@ -2575,7 +2592,7 @@ accurately delineate genomic rearrangements throughout the genome.")
 (define-public diamond
   (package
     (name "diamond")
-    (version "0.9.22")
+    (version "0.9.30")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -2584,7 +2601,7 @@ accurately delineate genomic rearrangements throughout the genome.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0bky78v79g3wmdpsd706cscckgw1v09fg8vdd0z8z0d5b97aj9zl"))))
+                "0k6f3kb6cniw11xw6763kkbs1sl0yack7xsy7q5fl5v170ssphq4"))))
     (build-system cmake-build-system)
     (arguments
      '(#:tests? #f ; no "check" target
@@ -2673,7 +2690,7 @@ data and settings.")
                                         texlive-latex-pgf      ; tikz
                                         texlive-latex-verbatimbox)))
        ("imagemagick" ,imagemagick)))
-    (home-page "http://dorina.mdc-berlin.de/public/rajewsky/discrover/")
+    (home-page "https://dorina.mdc-berlin.de/public/rajewsky/discrover/")
     (synopsis "Discover discriminative nucleotide sequence motifs")
     (description "Discrover is a motif discovery method to find binding sites
 of nucleic acid binding proteins.")
@@ -2741,7 +2758,7 @@ quantitative phenotypes.")
 (define-public edirect
   (package
     (name "edirect")
-    (version "12.1.20190819")
+    (version "13.3.20200128")
     (source (origin
               (method url-fetch)
               (uri (string-append "ftp://ftp.ncbi.nlm.nih.gov/entrez/entrezdirect"
@@ -2749,7 +2766,15 @@ quantitative phenotypes.")
                                   "/edirect-" version ".tar.gz"))
               (sha256
                (base32
-                "1i9s9mppcfqd60pfywpm8vdyz5vpnyslw22nd7dv0bhykrdnkz9g"))))
+                "093zp7klv81ph0y8mm8d78a9hnpfxbv2kdym70gzdf3vz176rw33"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin (delete-file "Mozilla-CA.tar.gz")
+                       (substitute* "rchive.go"
+                         ;; This go library does not have any license.
+                         (("github.com/fiam/gounidecode/unidecode")
+                          "golang.org/rainycape/unidecode"))
+                       #t))))
     (build-system perl-build-system)
     (arguments
      `(#:phases
@@ -2757,19 +2782,48 @@ quantitative phenotypes.")
          (delete 'configure)
          (delete 'build)
          (delete 'check)                ; simple check after install
+         (add-after 'unpack 'patch-programs
+           (lambda* (#:key inputs #:allow-other-keys)
+             ;; Ignore errors about missing xtract.Linux and rchive.Linux.
+              (substitute* "pm-refresh"
+                (("cat \\\"\\$target")
+                 "grep ^[[:digit:]] \"$target"))
+              #t))
          (replace 'install
-           (lambda* (#:key outputs #:allow-other-keys)
-             (install-file "edirect.pl"
-                           (string-append (assoc-ref outputs "out") "/bin"))
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((bin (string-append (assoc-ref outputs "out") "/bin"))
+                   (edirect-go (assoc-ref inputs "edirect-go-programs")))
+               (for-each
+                 (lambda (file)
+                   (install-file file bin))
+                 '("archive-pubmed" "asp-cp" "asp-ls" "download-ncbi-data"
+                   "download-pubmed" "edirect.pl" "efetch" "epost" "esearch"
+                   "fetch-pubmed" "ftp-cp" "ftp-ls" "has-asp" "index-pubmed"
+                   "pm-prepare" "pm-refresh" "pm-stash" "pm-collect"
+                   "pm-index" "pm-invert" "pm-merge" "pm-promote"))
+               (symlink (string-append edirect-go "/bin/xtract.Linux")
+                        (string-append bin "/xtract"))
+               (symlink (string-append edirect-go "/bin/rchive.Linux")
+                        (string-append bin "/rchive")))
              #t))
          (add-after 'install 'wrap-program
            (lambda* (#:key outputs #:allow-other-keys)
-             ;; Make sure 'edirect.pl' finds all perl inputs at runtime.
-             (let* ((out (assoc-ref outputs "out"))
+              ;; Make sure everything can run in a pure environment.
+              (let ((out (assoc-ref outputs "out"))
                     (path (getenv "PERL5LIB")))
-               (wrap-program (string-append out "/bin/edirect.pl")
-                 `("PERL5LIB" ":" prefix (,path))))
-             #t))
+                (for-each
+                  (lambda (file)
+                    (wrap-program file
+                      `("PERL5LIB" ":" prefix (,path)))
+                    (wrap-program file
+                      `("PATH" ":" prefix (,(string-append out "/bin")
+                                           ,(dirname (which "sed"))
+                                           ,(dirname (which "gzip"))
+                                           ,(dirname (which "grep"))
+                                           ,(dirname (which "perl"))
+                                           ,(dirname (which "uname"))))))
+                  (find-files out ".")))
+              #t))
          (add-after 'wrap-program 'check
            (lambda* (#:key outputs #:allow-other-keys)
              (invoke (string-append (assoc-ref outputs "out")
@@ -2777,7 +2831,8 @@ quantitative phenotypes.")
                      "-filter" "-help")
              #t)))))
     (inputs
-     `(("perl-html-parser" ,perl-html-parser)
+     `(("edirect-go-programs" ,edirect-go-programs)
+       ("perl-html-parser" ,perl-html-parser)
        ("perl-encode-locale" ,perl-encode-locale)
        ("perl-file-listing" ,perl-file-listing)
        ("perl-html-tagset" ,perl-html-tagset)
@@ -2793,7 +2848,7 @@ quantitative phenotypes.")
        ("perl-www-robotrules" ,perl-www-robotrules)
        ("perl-xml-simple" ,perl-xml-simple)
        ("perl" ,perl)))
-    (home-page "http://www.ncbi.nlm.nih.gov/books/NBK179288/")
+    (home-page "https://www.ncbi.nlm.nih.gov/books/NBK179288/")
     (synopsis "Tools for accessing the NCBI's set of databases")
     (description
      "Entrez Direct (EDirect) is a method for accessing the National Center
@@ -2807,8 +2862,59 @@ EDirect also provides an argument-driven function that simplifies the
 extraction of data from document summaries or other results that are returned
 in structured XML format.  This can eliminate the need for writing custom
 software to answer ad hoc questions.")
+    (native-search-paths
+     ;; Ideally this should be set for LWP somewhere.
+     (list (search-path-specification
+            (variable "PERL_LWP_SSL_CA_FILE")
+            (file-type 'regular)
+            (separator #f)
+            (files '("/etc/ssl/certs/ca-certificates.crt")))))
     (license license:public-domain)))
 
+(define-public edirect-go-programs
+  (package
+    (inherit edirect)
+    (name "edirect-go-programs")
+    (build-system go-build-system)
+    (arguments
+     `(#:install-source? #f
+       #:tests? #f      ; No tests.
+       #:import-path "ncbi.nlm.nih.gov/entrez/edirect"
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'build
+           (lambda* (#:key import-path #:allow-other-keys)
+             (with-directory-excursion (string-append "src/" import-path)
+               (invoke "go" "build" "-v" "-x" "j2x.go")
+               (invoke "go" "build" "-v" "-x" "t2x.go")
+               (invoke "go" "build" "-v" "-x" "-o"
+                       "xtract.Linux" "xtract.go" "common.go")
+               (invoke "go" "build" "-v" "-x" "-o"
+                       "rchive.Linux" "rchive.go" "common.go")
+               (invoke "go" "build" "-v" "-x" "-o" "symbols.Linux" "s2p.go"))))
+         (replace 'install
+           (lambda* (#:key outputs import-path #:allow-other-keys)
+             (let ((dest    (string-append (assoc-ref outputs "out") "/bin"))
+                   (source  (string-append "src/" import-path "/")))
+               (for-each (lambda (file)
+                           (format #t "installing ~a~%" file)
+                           (install-file (string-append source file) dest))
+                         '("j2x" "t2x" "symbols.Linux" "xtract.Linux" "rchive.Linux"))
+               #t))))))
+    (native-inputs '())
+    (propagated-inputs '())
+    (inputs
+     `(("go-github-com-fatih-color" ,go-github-com-fatih-color)
+       ("go-github-com-fogleman-gg" ,go-github-com-fogleman-gg)
+       ("go-github-com-gedex-inflector" ,go-github-com-gedex-inflector)
+       ("go-github-com-golang-freetype" ,go-github-com-golang-freetype)
+       ("go-github-com-klauspost-cpuid" ,go-github-com-klauspost-cpuid)
+       ("go-github-com-pbnjay-memory" ,go-github-com-pbnjay-memory)
+       ("go-github-com-surgebase-porter2" ,go-github-com-surgebase-porter2)
+       ("go-golang-org-rainycape-unidecode" ,go-golang-org-rainycape-unidecode)
+       ("go-golang-org-x-image" ,go-golang-org-x-image)
+       ("go-golang-org-x-text" ,go-golang-org-x-text)))))
+
 (define-public exonerate
   (package
     (name "exonerate")
@@ -2913,7 +3019,7 @@ ChIP-Seq, and analysis of metagenomic data.")
               #t))))))
    (inputs
     `(("python" ,python-2)))
-   (home-page "http://kiwi.cs.dal.ca/Software/ExpressBetaDiversity")
+   (home-page "https://github.com/dparks1134/ExpressBetaDiversity")
    (synopsis "Taxon- and phylogenetic-based beta diversity measures")
    (description
     "Express Beta Diversity (EBD) calculates ecological beta diversity
@@ -2995,7 +3101,8 @@ reasonable amount of time and memory.  For large alignments, FastTree is
     (inputs
      `(("libgtextutils" ,libgtextutils)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     `(("gcc" ,gcc-6) ;; doesn't build with later versions
+       ("pkg-config" ,pkg-config)))
     (home-page "http://hannonlab.cshl.edu/fastx_toolkit/")
     (synopsis "Tools for FASTA/FASTQ file preprocessing")
     (description
@@ -3309,7 +3416,8 @@ association studies (GWAS).")
        ("python-networkx" ,python2-networkx)))
     (native-inputs
      `(("python-cython" ,python2-cython)))
-    (home-page "http://grit-bio.org")
+    ;; The canonical <http://grit-bio.org> home page times out as of 2020-01-21.
+    (home-page "https://github.com/nboley/grit")
     (synopsis "Tool for integrative analysis of RNA-seq type assays")
     (description
      "GRIT is designed to use RNA-seq, TES, and TSS data to build and quantify
@@ -3376,7 +3484,7 @@ estimates transcript expression.")
     ;; Non-portable SSE instructions are used so building fails on platforms
     ;; other than x86_64.
     (supported-systems '("x86_64-linux"))
-    (home-page "http://ccb.jhu.edu/software/hisat/index.shtml")
+    (home-page "https://ccb.jhu.edu/software/hisat/index.shtml")
     (synopsis "Hierarchical indexing for spliced alignment of transcripts")
     (description
      "HISAT is a fast and sensitive spliced alignment program for mapping
@@ -3430,7 +3538,7 @@ particular, reads spanning multiple exons.")
      `(("unzip" ,unzip)                 ; needed for archive from ftp
        ("perl" ,perl)
        ("pandoc" ,ghc-pandoc)))         ; for documentation
-    (home-page "http://ccb.jhu.edu/software/hisat2/index.shtml")
+    (home-page "https://ccb.jhu.edu/software/hisat2/index.shtml")
     (synopsis "Graph-based alignment of genomic sequencing reads")
     (description "HISAT2 is a fast and sensitive alignment program for mapping
 next-generation sequencing reads (both DNA and RNA) to a population of human
@@ -3490,7 +3598,7 @@ HMMs).")
     (inputs
      `(("python-pysam" ,python-pysam)
        ("python-matplotlib" ,python-matplotlib)))
-    (home-page "http://www-huber.embl.de/users/anders/HTSeq/")
+    (home-page "https://htseq.readthedocs.io/")
     (synopsis "Analysing high-throughput sequencing data with Python")
     (description
      "HTSeq is a Python package that provides infrastructure to process data
@@ -3965,7 +4073,7 @@ VCF.")
        ("java-jbzip2" ,java-jbzip2)))
     (native-inputs
      `(("unzip" ,unzip)))
-    (home-page "http://www.bioinformatics.babraham.ac.uk/projects/fastqc/")
+    (home-page "https://www.bioinformatics.babraham.ac.uk/projects/fastqc/")
     (synopsis "Quality control tool for high throughput sequence data")
     (description
      "FastQC aims to provide a simple way to do some quality control
@@ -4044,7 +4152,7 @@ performance.")
      `(("zlib" ,zlib)))
     (native-inputs
      `(("perl" ,perl)))
-    (home-page "http://www.htslib.org")
+    (home-page "https://www.htslib.org")
     (synopsis "C library for reading/writing high-throughput sequencing data")
     (description
      "HTSlib is a C library for reading/writing high-throughput sequencing
@@ -4269,19 +4377,30 @@ experiments.")
 (define-public macs
   (package
     (name "macs")
-    (version "2.1.1.20160309")
+    (version "2.2.6")
     (source (origin
-              (method url-fetch)
-              (uri (pypi-uri "MACS2" version))
+              ;; The PyPi tarball does not contain tests.
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/taoliu/MACS.git")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "09ixspd1vcqmz1c81ih70xs4m7qml2iy5vyx1y74zww3iy1vl210"))))
+                "1c5gxr0mk6hkd4vclf0k00wvyvzw2vrmk52c85338p7aqjwg6n15"))))
     (build-system python-build-system)
     (arguments
-     `(#:python ,python-2 ; only compatible with Python 2.7
-       #:tests? #f)) ; no test target
+     `(#:phases
+       (modify-phases %standard-phases
+         (delete 'check)
+         (add-after 'install 'check
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (add-installed-pythonpath inputs outputs)
+             (invoke "pytest" "-v"))))))
     (inputs
-     `(("python-numpy" ,python2-numpy)))
+     `(("python-numpy" ,python-numpy)))
+    (native-inputs
+     `(("python-pytest" ,python-pytest)))
     (home-page "https://github.com/taoliu/MACS/")
     (synopsis "Model based analysis for ChIP-Seq data")
     (description
@@ -4591,7 +4710,7 @@ assembled metagenomic sequence.")
                             ;; Use setuptools, or else the executables are not
                             ;; installed.
                             (("distutils.core") "setuptools")
-                            ;; use "gcc" instead of "cc" for compilation
+                            ;; Use "gcc" instead of "cc" for compilation.
                             (("^defines")
                              "cc.set_executables(
 compiler='gcc',
@@ -4601,8 +4720,8 @@ linker_so='gcc -shared'); defines"))
                           #t))))
     (build-system python-build-system)
     (arguments
-     `(#:python ,python-2 ; only Python 2 is supported
-       #:tests? #f)) ; no "test" target
+     `(#:python ,python-2               ; only Python 2 is supported
+       #:tests? #f))                    ; no "test" target
     (inputs
      `(("samtools" ,samtools)
        ("python-numpy" ,python2-numpy)
@@ -4610,9 +4729,9 @@ linker_so='gcc -shared'); defines"))
        ("python-scipy" ,python2-scipy)
        ("python-matplotlib" ,python2-matplotlib)))
     (native-inputs
-     `(("python-mock" ,python2-mock)   ;for tests
-       ("python-pytz" ,python2-pytz))) ;for tests
-    (home-page "http://genes.mit.edu/burgelab/miso/index.html")
+     `(("python-mock" ,python2-mock)    ; for tests
+       ("python-pytz" ,python2-pytz)))  ; for tests
+    (home-page "https://www.genes.mit.edu/burgelab/miso/index.html")
     (synopsis "Mixture of Isoforms model for RNA-Seq isoform quantitation")
     (description
      "MISO (Mixture-of-Isoforms) is a probabilistic framework that quantitates
@@ -4728,7 +4847,17 @@ interrupted by stop codons.  OrfM finds and prints these ORFs.")
                (base32
                 "1kjmv891d6qbpp4shhhvkl02ff4q5xlpnls2513sm2cjcrs52f1i"))))
     (build-system python-build-system)
-    (arguments `(#:python ,python-2)) ; pbcore requires Python 2.7
+    (arguments
+     `(#:python ,python-2               ;pbcore < 2.0 requires Python 2.7
+       #:phases (modify-phases %standard-phases
+                  (add-after 'unpack 'remove-sphinx-dependency
+                    (lambda _
+                      ;; Sphinx is only required for documentation tests, which
+                      ;; we do not run; furthermore it depends on python2-sphinx
+                      ;; which is no longer maintained.
+                      (substitute* "requirements-dev.txt"
+                        (("^sphinx") ""))
+                      #t)))))
     (propagated-inputs
      `(("python-cython" ,python2-cython)
        ("python-numpy" ,python2-numpy)
@@ -4736,9 +4865,8 @@ interrupted by stop codons.  OrfM finds and prints these ORFs.")
        ("python-h5py" ,python2-h5py)))
     (native-inputs
      `(("python-nose" ,python2-nose)
-       ("python-sphinx" ,python2-sphinx)
        ("python-pyxb" ,python2-pyxb)))
-    (home-page "http://pacificbiosciences.github.io/pbcore/")
+    (home-page "https://pacificbiosciences.github.io/pbcore/")
     (synopsis "Library for reading and writing PacBio data files")
     (description
      "The pbcore package provides Python APIs for interacting with PacBio data
@@ -4896,20 +5024,26 @@ predicts the locations of structural units in the sequences.")
 (define-public proteinortho
   (package
     (name "proteinortho")
-    (version "5.16b")
-    (source
-     (origin
-      (method url-fetch)
-      (uri
-       (string-append
-        "http://www.bioinf.uni-leipzig.de/Software/proteinortho/proteinortho_v"
-        version "_src.tar.gz"))
-      (sha256
-       (base32
-        "1wl0dawpssqwfjvr651r4wlww8hhjin8nba6xh71ks7sbypx886j"))))
+    (version "6.0.14")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://gitlab.com/paulklemm_PHD/proteinortho.git")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0pmy617zy2z2w6hjqxjhf3rzikf5n3mpia80ysq8233vfr7wrzff"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin
+                  ;; remove pre-built scripts
+                  (delete-file-recursively "src/BUILD/")
+                  #t))))
     (build-system gnu-build-system)
     (arguments
      `(#:test-target "test"
+       #:make-flags '("CC=gcc")
        #:phases
        (modify-phases %standard-phases
          (replace 'configure
@@ -4927,15 +5061,23 @@ predicts the locations of structural units in the sequences.")
              #t))
          (add-after 'install 'wrap-programs
            (lambda* (#:key inputs outputs #:allow-other-keys)
-             (let* ((path (getenv "PATH"))
-                    (out (assoc-ref outputs "out"))
-                    (binary (string-append out "/bin/proteinortho5.pl")))
-               (wrap-program binary `("PATH" ":" prefix (,path))))
+             (let ((path (getenv "PATH"))
+                   (out (assoc-ref outputs "out")))
+               (for-each (lambda (script)
+                           (wrap-script script `("PATH" ":" prefix (,path))))
+                         (cons (string-append out "/bin/proteinortho")
+                               (find-files out "\\.(pl|py)$"))))
              #t)))))
     (inputs
-     `(("perl" ,perl)
-       ("python" ,python-2)
-       ("blast+" ,blast+)))
+     `(("guile" ,guile-3.0) ; for wrap-script
+       ("diamond" ,diamond)
+       ("perl" ,perl)
+       ("python" ,python-wrapper)
+       ("blast+" ,blast+)
+       ("lapack" ,lapack)
+       ("openblas" ,openblas)))
+    (native-inputs
+     `(("which" ,which)))
     (home-page "http://www.bioinf.uni-leipzig.de/Software/proteinortho")
     (synopsis "Detect orthologous genes across species")
     (description
@@ -4943,7 +5085,7 @@ predicts the locations of structural units in the sequences.")
 species.  For doing so, it compares similarities of given gene sequences and
 clusters them to find significant groups.  The algorithm was designed to handle
 large-scale data and can be applied to hundreds of species at once.")
-    (license license:gpl2+)))
+    (license license:gpl3+)))
 
 (define-public pyicoteo
   (package
@@ -4987,6 +5129,8 @@ different command-line tools:
 (define-public prodigal
   (package
     (name "prodigal")
+    ;; Check for a new home page when updating this package:
+    ;; https://github.com/hyattpd/Prodigal/issues/36#issuecomment-536617588
     (version "2.6.3")
     (source (origin
               (method git-fetch)
@@ -4999,14 +5143,14 @@ different command-line tools:
                 "1fs1hqk83qjbjhrvhw6ni75zakx5ki1ayy3v6wwkn3xvahc9hi5s"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:tests? #f ;no check target
+     `(#:tests? #f                      ; no check target
        #:make-flags (list (string-append "INSTALLDIR="
                                          (assoc-ref %outputs "out")
                                          "/bin"))
        #:phases
        (modify-phases %standard-phases
          (delete 'configure))))
-    (home-page "http://prodigal.ornl.gov")
+    (home-page "https://github.com/hyattpd/Prodigal")
     (synopsis "Protein-coding gene prediction for Archaea and Bacteria")
     (description
      "Prodigal runs smoothly on finished genomes, draft genomes, and
@@ -5120,7 +5264,7 @@ partial genes, and identifies translation initiation sites.")
        ("r-minimal" ,r-minimal)
        ("r-ggplot2" ,r-ggplot2)
        ("coreutils" ,coreutils)))
-    (home-page "http://sanger-pathogens.github.io/Roary")
+    (home-page "https://sanger-pathogens.github.io/Roary/")
     (synopsis "High speed stand-alone pan genome pipeline")
     (description
      "Roary is a high speed stand alone pan genome pipeline, which takes
@@ -5164,7 +5308,7 @@ extremely diverse sets of genomes.")
              #t)))))
     (inputs
      `(("openmpi" ,openmpi)))
-    (home-page "http://sco.h-its.org/exelixis/web/software/raxml/index.html")
+    (home-page "https://cme.h-its.org/exelixis/web/software/raxml/index.html")
     (synopsis "Randomized Axelerated Maximum Likelihood phylogenetic trees")
     (description
      "RAxML is a tool for phylogenetic analysis and post-analysis of large
@@ -5265,7 +5409,7 @@ BAM and Wiggle files in both transcript-coordinate and genomic-coordinate.")
 (define-public rseqc
   (package
     (name "rseqc")
-    (version "2.6.1")
+    (version "3.0.1")
     (source
      (origin
        (method url-fetch)
@@ -5273,28 +5417,18 @@ BAM and Wiggle files in both transcript-coordinate and genomic-coordinate.")
         (string-append "mirror://sourceforge/rseqc/"
                        "RSeQC-" version ".tar.gz"))
        (sha256
-        (base32 "15ly0254yi032qzkdplg00q144qfdsd986gh62829rl5bkxhj330"))
-       (modules '((guix build utils)))
-       (snippet
-        '(begin
-           ;; remove bundled copy of pysam
-           (delete-file-recursively "lib/pysam")
-           (substitute* "setup.py"
-             ;; remove dependency on outdated "distribute" module
-             (("^from distribute_setup import use_setuptools") "")
-             (("^use_setuptools\\(\\)") "")
-             ;; do not use bundled copy of pysam
-             (("^have_pysam = False") "have_pysam = True"))
-           #t))))
+        (base32
+         "0gbb9iyb7swiv5455fm5rg98r7l6qn27v564yllqjd574hncpx6m"))))
     (build-system python-build-system)
-    (arguments `(#:python ,python-2))
     (inputs
-     `(("python-cython" ,python2-cython)
-       ("python-pysam" ,python2-pysam)
-       ("python-numpy" ,python2-numpy)
+     `(("python-cython" ,python-cython)
+       ("python-bx-python" ,python-bx-python)
+       ("python-pybigwig" ,python-pybigwig)
+       ("python-pysam" ,python-pysam)
+       ("python-numpy" ,python-numpy)
        ("zlib" ,zlib)))
     (native-inputs
-     `(("python-nose" ,python2-nose)))
+     `(("python-nose" ,python-nose)))
     (home-page "http://rseqc.sourceforge.net/")
     (synopsis "RNA-seq quality control package")
     (description
@@ -6035,7 +6169,8 @@ sequence itself can be retrieved from these databases.")
        ("fuse" ,fuse)
        ("hdf5" ,hdf5)
        ("zlib" ,zlib)))
-    (home-page "http://www.ncbi.nlm.nih.gov/Traces/sra/sra.cgi?view=software")
+    (home-page
+     "https://trace.ncbi.nlm.nih.gov/Traces/sra/sra.cgi?view=software")
     (synopsis "Tools and libraries for reading and writing sequencing data")
     (description
      "The SRA Toolkit from NCBI is a collection of tools and libraries for
@@ -6261,7 +6396,7 @@ of these reads to align data quickly through a hash-based indexing scheme.")
                #t))))))
     (inputs
      `(("zlib" ,zlib)))
-    (home-page "http://bioinfo.lifl.fr/RNA/sortmerna")
+    (home-page "https://bioinfo.lifl.fr/RNA/sortmerna/")
     (synopsis "Biological sequence analysis tool for NGS reads")
     (description
      "SortMeRNA is a biological sequence analysis tool for filtering, mapping
@@ -6276,16 +6411,16 @@ application of SortMeRNA is filtering rRNA from metatranscriptomic data.")
 (define-public star
   (package
     (name "star")
-    (version "2.7.1a")
+    (version "2.7.3a")
     (source (origin
               (method git-fetch)
               (uri (git-reference
                     (url "https://github.com/alexdobin/STAR.git")
                     (commit version)))
-              (file-name (string-append name "-" version "-checkout"))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "0n6g4s4hgw7qygs1z97j7a2dgz8gfaa4cv5pjvvvmarvk0x07hyg"))
+                "1hgiqw5qhs0pc1xazzihcfd92na02xyq2kb469z04y1v51kpvvjq"))
               (modules '((guix build utils)))
               (snippet
                '(begin
@@ -6503,31 +6638,56 @@ Cuffdiff or Ballgown programs.")
 (define-public taxtastic
   (package
     (name "taxtastic")
-    (version "0.8.5")
+    (version "0.8.11")
     (source (origin
-              (method url-fetch)
-              (uri (pypi-uri "taxtastic" version))
+              ;; The Pypi version does not include tests.
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/fhcrc/taxtastic.git")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
               (sha256
                (base32
-                "03pysw79lsrvz4lwzis88j15067ffqbi4cid5pqhrlxmd6bh8rrk"))))
+                "1sv8mkg64jn7zdwf1jj71c16686yrwxk0apb1l8sjszy9p166g0p"))))
     (build-system python-build-system)
     (arguments
-     `(#:python ,python-2
-       #:phases
+     `(#:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'prepare-directory
+           (lambda _
+             ;; The git checkout must be writable for tests.
+             (for-each make-file-writable (find-files "."))
+             ;; This test fails, but the error is not caught by the test
+             ;; framework, so the tests fail...
+             (substitute* "tests/test_taxit.py"
+               (("self.cmd_fails\\(''\\)")
+                "self.cmd_fails('nothing')"))
+             ;; This version file is expected to be created with git describe.
+             (mkdir-p "taxtastic/data")
+             (with-output-to-file "taxtastic/data/ver"
+               (lambda () (display ,version)))
+             #t))
+         (add-after 'unpack 'python37-compatibility
+           (lambda _
+             (substitute* "taxtastic/utils.py"
+               (("import csv") "import csv, errno")
+               (("os.errno") "errno"))
+             #t))
          (replace 'check
-           (lambda _ (invoke "python" "-m" "unittest" "discover" "-v") #t)))))
+           ;; Note, this fails to run with "-v" as it tries to write to a
+           ;; closed output stream.
+           (lambda _ (invoke "python" "-m" "unittest") #t)))))
     (propagated-inputs
-     `(("python-sqlalchemy" ,python2-sqlalchemy)
-       ("python-decorator" ,python2-decorator)
-       ("python-biopython" ,python2-biopython)
-       ("python-pandas" ,python2-pandas)
-       ("python-psycopg2" ,python2-psycopg2)
-       ("python-fastalite" ,python2-fastalite)
-       ("python-pyyaml" ,python2-pyyaml)
-       ("python-six" ,python2-six)
-       ("python-jinja2" ,python2-jinja2)
-       ("python-dendropy" ,python2-dendropy)))
+     `(("python-sqlalchemy" ,python-sqlalchemy)
+       ("python-decorator" ,python-decorator)
+       ("python-biopython" ,python-biopython)
+       ("python-pandas" ,python-pandas)
+       ("python-psycopg2" ,python-psycopg2)
+       ("python-fastalite" ,python-fastalite)
+       ("python-pyyaml" ,python-pyyaml)
+       ("python-six" ,python-six)
+       ("python-jinja2" ,python-jinja2)
+       ("python-dendropy" ,python-dendropy)))
     (home-page "https://github.com/fhcrc/taxtastic")
     (synopsis "Tools for taxonomic naming and annotation")
     (description
@@ -6539,7 +6699,7 @@ profiles, and associated taxonomic information.")
 (define-public vcftools
   (package
     (name "vcftools")
-    (version "0.1.15")
+    (version "0.1.16")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -6547,7 +6707,7 @@ profiles, and associated taxonomic information.")
                     version "/vcftools-" version ".tar.gz"))
               (sha256
                (base32
-                "1qw30c45wihgy632rbz4rh3njnwj4msj46l1rsgdhyg6bgypmr1i"))))
+                "1qqlx7flfv7axrjwkaz6njkscsl1d0jw98ns8d8bh1n1hd1pgz6v"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f ; no "check" target
@@ -6575,17 +6735,18 @@ data in the form of VCF files.")
 (define-public infernal
   (package
     (name "infernal")
-    (version "1.1.2")
+    (version "1.1.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "http://eddylab.org/software/infernal/"
                                   "infernal-" version ".tar.gz"))
               (sha256
                (base32
-                "0sr2hiz3qxfwqpz3whxr6n82p3x27336v3f34iqznp10hks2935c"))))
+                "0pm8bm3s6nfa0av4x6m6h27lsg12b3lz3jm0fyh1mc77l2isd61v"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("perl" ,perl))) ; for tests
+     `(("perl" ,perl)
+       ("python" ,python))) ; for tests
     (home-page "http://eddylab.org/infernal/")
     (synopsis "Inference of RNA alignments")
     (description "Infernal (\"INFERence of RNA ALignment\") is a tool for
@@ -6596,7 +6757,7 @@ profile, but it scores a combination of sequence consensus and RNA secondary
 structure consensus, so in many cases, it is more capable of identifying RNA
 homologs that conserve their secondary structure more than their primary
 sequence.")
-    ;; Infernal 1.1.2 requires VMX or SSE capability for parallel instructions.
+    ;; Infernal 1.1.3 requires VMX or SSE capability for parallel instructions.
     (supported-systems '("i686-linux" "x86_64-linux"))
     (license license:bsd-3)))
 
@@ -6669,14 +6830,14 @@ information as possible.")
 (define-public r-genefilter
   (package
     (name "r-genefilter")
-    (version "1.66.0")
+    (version "1.68.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "genefilter" version))
        (sha256
         (base32
-         "1jq7lam4dnbvz55lx93kcl9afl8xfjd6xs374d35m21bkay418kj"))))
+         "1xjr02qhldspjwd6y374wgik18fgywb6408wsz471i8b4ik98ckc"))))
     (build-system r-build-system)
     (native-inputs
      `(("gfortran" ,gfortran)))
@@ -6684,7 +6845,7 @@ information as possible.")
      `(("r-annotate" ,r-annotate)
        ("r-annotationdbi" ,r-annotationdbi)
        ("r-biobase" ,r-biobase)
-       ("r-s4vectors" ,r-s4vectors)
+       ("r-biocgenerics" ,r-biocgenerics)
        ("r-survival" ,r-survival)))
     (home-page "https://bioconductor.org/packages/genefilter")
     (synopsis "Filter genes from high-throughput experiments")
@@ -6696,14 +6857,14 @@ high-throughput sequencing experiments.")
 (define-public r-deseq2
   (package
     (name "r-deseq2")
-    (version "1.24.0")
+    (version "1.26.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "DESeq2" version))
        (sha256
         (base32
-         "0fkk326addm2cw688gnmdzsmri5qx8j6ldnr4xin6kjnwicqhlqd"))))
+         "1lmbhznfs8dz9ipd53z4ccwvwxqwzx1ayw56jlrvlsambaj8fash"))))
     (properties `((upstream-name . "DESeq2")))
     (build-system r-build-system)
     (propagated-inputs
@@ -6733,14 +6894,14 @@ distribution.")
 (define-public r-dexseq
   (package
     (name "r-dexseq")
-    (version "1.30.0")
+    (version "1.32.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "DEXSeq" version))
        (sha256
         (base32
-         "1b2s0vwm97g0wgm4ms0f4pqkqiqmxscnhg700aybl5vx0m2fa8xm"))))
+         "0sqqb65ckliif2nmvlvc7w49id59z0nvqcdz5gry8l2mn6azrf6a"))))
     (properties `((upstream-name . "DEXSeq")))
     (build-system r-build-system)
     (propagated-inputs
@@ -6776,14 +6937,14 @@ exploration of the results.")
 (define-public r-annotationforge
   (package
     (name "r-annotationforge")
-    (version "1.26.0")
+    (version "1.28.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "AnnotationForge" version))
        (sha256
         (base32
-         "0m4w8n2711wr28znv646cfc7m5jqlr8friz334zdyjmhg7m2xkb7"))))
+         "0h2r60v339ajk5r6xq4iwwcpihdvf12fi8255byr2dhglzrd8xl7"))))
     (properties
      `((upstream-name . "AnnotationForge")))
     (build-system r-build-system)
@@ -6806,14 +6967,14 @@ databases.  Packages produced are intended to be used with AnnotationDbi.")
 (define-public r-rbgl
   (package
     (name "r-rbgl")
-    (version "1.60.0")
+    (version "1.62.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "RBGL" version))
        (sha256
         (base32
-         "06brn9hl6lybx6hdfp1sycwj6wn1bjfi8xyhpy0v122v1z8d5mbz"))))
+         "0ixbkdirf08i400db587r262j52sdwdgk3884nxk5xkbhx2m6vg0"))))
     (properties `((upstream-name . "RBGL")))
     (build-system r-build-system)
     (propagated-inputs
@@ -6829,14 +6990,14 @@ the graph algorithms contained in the Boost library.")
 (define-public r-gseabase
   (package
     (name "r-gseabase")
-    (version "1.46.0")
+    (version "1.48.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "GSEABase" version))
        (sha256
         (base32
-         "0vh53xk2prjbdkbr3hwfiflx1gh7ilrqs3j1p3lyd6syy3rn9n83"))))
+         "0kcb90sxlf19d5dxhdbqk9x62svky4262cccl0wxarbq6gf3bd57"))))
     (properties `((upstream-name . "GSEABase")))
     (build-system r-build-system)
     (propagated-inputs
@@ -6856,14 +7017,14 @@ Enrichment Analysis} (GSEA).")
 (define-public r-category
   (package
     (name "r-category")
-    (version "2.50.0")
+    (version "2.52.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "Category" version))
        (sha256
         (base32
-         "1n36xfnwn2np5f0lix9abvv9w6jb25jqz3xzvqzklz9s1af4k6x4"))))
+         "0ga0ij9hyzsxa5pavwmv35i8xggia2wygrk4m4z8an0qcvgy3v5g"))))
     (properties `((upstream-name . "Category")))
     (build-system r-build-system)
     (propagated-inputs
@@ -6887,14 +7048,14 @@ analysis.")
 (define-public r-gostats
   (package
     (name "r-gostats")
-    (version "2.50.0")
+    (version "2.52.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "GOstats" version))
        (sha256
         (base32
-         "1a95i6awm2a8xv42fg2z3n29fg9z29i45kd80hxf6mvqqgzj80xp"))))
+         "19f4gxm3sbprqrnwzvskvywv6j4ibm8xkrbgg4h0fvh2b5331nwc"))))
     (properties `((upstream-name . "GOstats")))
     (build-system r-build-system)
     (propagated-inputs
@@ -6918,14 +7079,14 @@ testing and other simple calculations.")
 (define-public r-shortread
   (package
     (name "r-shortread")
-    (version "1.42.0")
+    (version "1.44.3")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "ShortRead" version))
        (sha256
         (base32
-         "1irqzdgsavjqsq0vva4966qh8qgn7xn9382dmhahm1hxb94qmi59"))))
+         "0ykyrj4g6vc67d5s46sp4659qvar2iavflzhggm79w4p50hxia4s"))))
     (properties `((upstream-name . "ShortRead")))
     (build-system r-build-system)
     (inputs
@@ -6960,14 +7121,14 @@ ungapped alignment formats.")
 (define-public r-systempiper
   (package
     (name "r-systempiper")
-    (version "1.18.2")
+    (version "1.20.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "systemPipeR" version))
        (sha256
         (base32
-         "18s5vpmw766pm64w7bwwfgpsv9yzhwclf0ya1rpqz8qslw7bbdjf"))))
+         "17r25v9wcglyma2v1c8fka80dm7fx86saxlsb2aprmwi4h3dhb0j"))))
     (properties `((upstream-name . "systemPipeR")))
     (build-system r-build-system)
     (propagated-inputs
@@ -7007,14 +7168,14 @@ annotation infrastructure.")
 (define-public r-grohmm
   (package
     (name "r-grohmm")
-    (version "1.18.0")
+    (version "1.20.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "groHMM" version))
        (sha256
         (base32
-         "1p368qf8ab1vy8gl2j7rx0l7bvva4m7w06i364rqzs0sdyzlbm3y"))))
+         "0ywr8f6bfhg2ia3n4rmsxr4v1xqmlyhkwh0rvkgh3yqgnbvihndg"))))
     (properties `((upstream-name . "groHMM")))
     (build-system r-build-system)
     (propagated-inputs
@@ -7240,13 +7401,13 @@ BLAST, KEGG, GenBank, MEDLINE and GO.")
 (define-public r-biocviews
   (package
     (name "r-biocviews")
-    (version "1.52.2")
+    (version "1.54.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "biocViews" version))
               (sha256
                (base32
-                "0qwrsd9fcpkv7hhzy1scnj7ahdxi6cjary28kqk6b36gkzmnrw4r"))))
+                "0yn8jys1900d31haayz0ppqk5y79mwjajwp4alz6pln3dbs70f3g"))))
     (properties
      `((upstream-name . "biocViews")))
     (build-system r-build-system)
@@ -7268,13 +7429,13 @@ also known as views, in a controlled vocabulary.")
 (define-public r-biocstyle
   (package
     (name "r-biocstyle")
-    (version "2.12.0")
+    (version "2.14.4")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "BiocStyle" version))
               (sha256
                (base32
-                "029x8r9rcx6zy0xixdpwxai4jv4ynb161821fzac6z4r8k418398"))))
+                "1x71in059zql40f4c87bd1gf96r945kdvwbq61jmch9d3d8nwxbb"))))
     (properties
      `((upstream-name . "BiocStyle")))
     (build-system r-build-system)
@@ -7294,13 +7455,13 @@ functionality.")
 (define-public r-bioccheck
   (package
     (name "r-bioccheck")
-    (version "1.20.0")
+    (version "1.22.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "BiocCheck" version))
               (sha256
                (base32
-                "1gkw9s6dhdryga9ap5yhvcqg9jsy4cn417ayqk1qiv6fy91fd124"))))
+                "1qnvl5yajgh67ijkq6gdsafri1k5hyw5gzn2ccqk9ymx6i2xd80g"))))
     (properties
      `((upstream-name . "BiocCheck")))
     (build-system r-build-system)
@@ -7341,13 +7502,13 @@ checks on R packages that are to be submitted to the Bioconductor repository.")
 (define-public r-s4vectors
   (package
     (name "r-s4vectors")
-    (version "0.22.1")
+    (version "0.24.4")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "S4Vectors" version))
               (sha256
                (base32
-                "0cpxqb18wd3pjd7bi8lry13sm5ffqahcvvxpk5pwm5xcj30cdlm9"))))
+                "1fzs8j2d3wwfzm2fq63ywf68a4dbggyl5l098f148yn4jw7jd3bc"))))
     (properties
      `((upstream-name . "S4Vectors")))
     (build-system r-build-system)
@@ -7368,13 +7529,13 @@ S4Vectors package itself.")
 (define-public r-iranges
   (package
     (name "r-iranges")
-    (version "2.18.3")
+    (version "2.20.2")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "IRanges" version))
               (sha256
                (base32
-                "05rw2b2bwns443n7d6lf97zdv1jbqdii2nprhs6x852w73m2a2g3"))))
+                "1jhnxb9yacmj2z82b6992gihjvj1a0gnjwbjiagyyx03fqnv23kg"))))
     (properties
      `((upstream-name . "IRanges")))
     (build-system r-build-system)
@@ -7420,13 +7581,13 @@ ID and species.  It is used by functions in the GenomeInfoDb package.")
 (define-public r-genomeinfodb
   (package
     (name "r-genomeinfodb")
-    (version "1.20.0")
+    (version "1.22.1")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "GenomeInfoDb" version))
               (sha256
                (base32
-                "0zkhms81b3jz30q7ag81a1mq1rgqg4izyfdvcni68gvn8gm7kdyk"))))
+                "0phadr67yb4l25x41a9wg4pjy1wbxlk14jhidhz6g5n4z6x45qbm"))))
     (properties
      `((upstream-name . "GenomeInfoDb")))
     (build-system r-build-system)
@@ -7436,6 +7597,8 @@ ID and species.  It is used by functions in the GenomeInfoDb package.")
        ("r-iranges" ,r-iranges)
        ("r-rcurl" ,r-rcurl)
        ("r-s4vectors" ,r-s4vectors)))
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
     (home-page "https://bioconductor.org/packages/GenomeInfoDb")
     (synopsis "Utilities for manipulating chromosome identifiers")
     (description
@@ -7448,13 +7611,13 @@ names in their natural, rather than lexicographic, order.")
 (define-public r-edger
   (package
     (name "r-edger")
-    (version "3.26.8")
+    (version "3.28.1")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "edgeR" version))
               (sha256
                (base32
-                "1wwimzviy2vklp80faz7sbbp74qcw2csbmlfgvzj7b785vwarpwg"))))
+                "07dv99kl7jfa62nzcq705r56gcpb1hq7p4px48j71y2ddi1rqmr6"))))
     (properties `((upstream-name . "edgeR")))
     (build-system r-build-system)
     (propagated-inputs
@@ -7476,13 +7639,13 @@ CAGE.")
 (define-public r-variantannotation
   (package
     (name "r-variantannotation")
-    (version "1.30.1")
+    (version "1.32.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "VariantAnnotation" version))
               (sha256
                (base32
-                "144x3d3b9a3q5jy4aqrk1nf2yavwjhwlf71s7qyr4x3ms3wmvf8i"))))
+                "009s7rzp78s2w6iybizina42qx2w8qv3xwjbkpqphmm451maykgs"))))
     (properties
      `((upstream-name . "VariantAnnotation")))
     (inputs
@@ -7515,13 +7678,13 @@ coding changes and predict coding outcomes.")
 (define-public r-limma
   (package
     (name "r-limma")
-    (version "3.40.6")
+    (version "3.42.2")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "limma" version))
               (sha256
                (base32
-                "166z8cdh6w90rldqqaar7hyaskwiy4smawjfbn4sn58clv6q3mp8"))))
+                "1nd01r7rd7jb5qz84vbgfnyrmgm9wiq7fsdji68537kjgvrzmm9z"))))
     (build-system r-build-system)
     (home-page "http://bioinf.wehi.edu.au/limma")
     (synopsis "Package for linear models for microarray and RNA-seq data")
@@ -7534,13 +7697,13 @@ different technologies, including microarrays, RNA-seq, and quantitative PCR.")
 (define-public r-xvector
   (package
     (name "r-xvector")
-    (version "0.24.0")
+    (version "0.26.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "XVector" version))
               (sha256
                (base32
-                "12y09pwy86h1za6cmaxs960r7fs0vjzhl0li8jn59vqq9liza1ap"))))
+                "0s2gg84yzl5ffkzp6n7kh0jjk1vd90z189f5hkfn18rn67cy2nv7"))))
     (properties
      `((upstream-name . "XVector")))
     (build-system r-build-system)
@@ -7570,13 +7733,13 @@ different technologies, including microarrays, RNA-seq, and quantitative PCR.")
 (define-public r-genomicranges
   (package
     (name "r-genomicranges")
-    (version "1.36.1")
+    (version "1.38.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "GenomicRanges" version))
               (sha256
                (base32
-                "1yid84gn0052v52h84685lvk854grl1wl65psmlmxx9yyykgc0jn"))))
+                "0xdds6ws7jjdfy4x3mb0qhy43kpxdmifmpw0jdk4wgw999zabb50"))))
     (properties
      `((upstream-name . "GenomicRanges")))
     (build-system r-build-system)
@@ -7599,13 +7762,13 @@ manipulating genomic intervals and variables defined along a genome.")
 (define-public r-biobase
   (package
     (name "r-biobase")
-    (version "2.44.0")
+    (version "2.46.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "Biobase" version))
               (sha256
                (base32
-                "15yl92niqamx3lmwd11zlk0xniibqnh1gi280iadxicmchi83npc"))))
+                "1gx41083dqlm59vwqdxvc4ny31x91j48mda9n3scg0f2zwasvqgl"))))
     (properties
      `((upstream-name . "Biobase")))
     (build-system r-build-system)
@@ -7621,13 +7784,13 @@ on Bioconductor or which replace R functions.")
 (define-public r-annotationdbi
   (package
     (name "r-annotationdbi")
-    (version "1.46.1")
+    (version "1.48.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "AnnotationDbi" version))
               (sha256
                (base32
-                "13nanz4nzy0mcda8ljz2g8d81hpqfz6jky7ydz5hpk0g2264b9ga"))))
+                "09piz1f0xpbb4amskx4ilby6lfrn27hhwk75il2c4lq6m3hr4w8s"))))
     (properties
      `((upstream-name . "AnnotationDbi")))
     (build-system r-build-system)
@@ -7648,23 +7811,27 @@ annotation data packages using SQLite data storage.")
 (define-public r-biomart
   (package
     (name "r-biomart")
-    (version "2.40.5")
+    (version "2.42.1")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "biomaRt" version))
               (sha256
                (base32
-                "1kjvxnkpsx3j2hji3cg3ka2gv8a9mg117lzzxyqjb7qa4zw7dipx"))))
+                "0676s8aq9xj2pdrfk28kf5j69fmssn900k4vxrp11ghwjr8z24h7"))))
     (properties
      `((upstream-name . "biomaRt")))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-annotationdbi" ,r-annotationdbi)
+       ("r-biocfilecache" ,r-biocfilecache)
        ("r-httr" ,r-httr)
+       ("r-openssl" ,r-openssl)
        ("r-progress" ,r-progress)
-       ("r-rcurl" ,r-rcurl)
+       ("r-rappdirs" ,r-rappdirs)
        ("r-stringr" ,r-stringr)
        ("r-xml" ,r-xml)))
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
     (home-page "https://bioconductor.org/packages/biomaRt")
     (synopsis "Interface to BioMart databases")
     (description
@@ -7681,13 +7848,13 @@ powerful online queries from gene annotation to database mining.")
 (define-public r-biocparallel
   (package
     (name "r-biocparallel")
-    (version "1.18.1")
+    (version "1.20.1")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "BiocParallel" version))
               (sha256
                (base32
-                "1j6wbls4qgvi5gj99c51r00jhxrzxk3x3258wg7dcjzbfqypvyw3"))))
+                "0g0znb4whsvb9hpwx9xaasdi5n4vjqw8cpdyqgrdrjm91rls1h21"))))
     (properties
      `((upstream-name . "BiocParallel")))
     (build-system r-build-system)
@@ -7706,13 +7873,13 @@ objects.")
 (define-public r-biostrings
   (package
     (name "r-biostrings")
-    (version "2.52.0")
+    (version "2.54.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "Biostrings" version))
               (sha256
                (base32
-                "0inrl97hli3qz6cfxcikc4picmbrqc8phdgqi18ynlvxy5ql64h4"))))
+                "0pq7g2hflx2cjlpwdj6mscw9hnxvlf5y50dxf48lbrf9r3q9kmyp"))))
     (properties
      `((upstream-name . "Biostrings")))
     (build-system r-build-system)
@@ -7732,13 +7899,13 @@ biological sequences or sets of sequences.")
 (define-public r-rsamtools
   (package
     (name "r-rsamtools")
-    (version "2.0.3")
+    (version "2.2.3")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "Rsamtools" version))
               (sha256
                (base32
-                "03qfpaqbffirpnby88mv6h45njfapli28crdvg35h2zi2jkkmhvp"))))
+                "1vj43acawqqkf9yval9fzxarpsf04fmn78m2hq4f083w1k0myhyr"))))
     (properties
      `((upstream-name . "Rsamtools")))
     (build-system r-build-system)
@@ -7777,13 +7944,13 @@ tab-delimited (tabix) files.")
 (define-public r-delayedarray
   (package
     (name "r-delayedarray")
-    (version "0.10.0")
+    (version "0.12.3")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "DelayedArray" version))
               (sha256
                (base32
-                "0l907ggxndn3f29zvsd5pppmp4c31rb22r6zkhvgph7xdxahyy6z"))))
+                "02i88ll2d7r83nk0wdj28akvsz3jq19g6ixpaahfy3jy5av4byv6"))))
     (properties
      `((upstream-name . "DelayedArray")))
     (build-system r-build-system)
@@ -7794,6 +7961,8 @@ tab-delimited (tabix) files.")
        ("r-iranges" ,r-iranges)
        ("r-matrix" ,r-matrix)
        ("r-matrixstats" ,r-matrixstats)))
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
     (home-page "https://bioconductor.org/packages/DelayedArray")
     (synopsis "Delayed operations on array-like objects")
     (description
@@ -7809,13 +7978,13 @@ array-like objects like @code{DataFrame} objects (typically with Rle columns),
 (define-public r-summarizedexperiment
   (package
     (name "r-summarizedexperiment")
-    (version "1.14.1")
+    (version "1.16.1")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "SummarizedExperiment" version))
               (sha256
                (base32
-                "0bhwgzrdipr0qjzc4j0qspqprx3v1rvshmx4j6506dv43pqlgp3f"))))
+                "1z9bdk49dajafkfvv99nv6zyn6v70iyyy2jgdp5w5z8174a2bnn1"))))
     (properties
      `((upstream-name . "SummarizedExperiment")))
     (build-system r-build-system)
@@ -7840,13 +8009,13 @@ samples.")
 (define-public r-genomicalignments
   (package
     (name "r-genomicalignments")
-    (version "1.20.1")
+    (version "1.22.1")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "GenomicAlignments" version))
               (sha256
                (base32
-                "0s3q97q4pgj5jwn4g95al44rahrwsncsf45v01v4071msx3xmjxq"))))
+                "065xvy4pkda0ajvl1b75iski95k1pnbhxwdq7vkfl8v55915vqh6"))))
     (properties
      `((upstream-name . "GenomicAlignments")))
     (build-system r-build-system)
@@ -7873,13 +8042,13 @@ alignments.")
 (define-public r-rtracklayer
   (package
     (name "r-rtracklayer")
-    (version "1.44.4")
+    (version "1.46.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "rtracklayer" version))
               (sha256
                (base32
-                "0dnifr58j2si2qbnvap2wslz3xgjv3h4l7a6v7nmmc57hq6kdbym"))))
+                "0lp9xsm8kqrgpwgwj7qaqcv1z6qynbz084grlpwp94zsp2ppf0n6"))))
     (build-system r-build-system)
     (arguments
      `(#:phases
@@ -7920,13 +8089,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.36.4")
+    (version "1.38.2")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "GenomicFeatures" version))
               (sha256
                (base32
-                "0mzqv8pyxx5nwchyx3radym9ws2f9hb50xc9abjsjs4w4pv91j3k"))))
+                "0dd226kgks50jdx5w35f3wmg95hy8aibi4kcn8p5kmqp5i8j580b"))))
     (properties
      `((upstream-name . "GenomicFeatures")))
     (build-system r-build-system)
@@ -7985,13 +8154,13 @@ information about the latest version of the Gene Ontologies.")
 (define-public r-topgo
   (package
     (name "r-topgo")
-    (version "2.36.0")
+    (version "2.38.1")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "topGO" version))
               (sha256
                (base32
-                "09z42jwz5vh289ijz3x68zv5vmgkgcbhlp73vvmna1gld5lh5kz1"))))
+                "1kw9m2j67895k58lx9msc248pjwblp8clxwgsl01cql7sgi1xzlf"))))
     (properties
      `((upstream-name . "topGO")))
     (build-system r-build-system)
@@ -8018,13 +8187,13 @@ dependencies between GO terms can be implemented and applied.")
 (define-public r-bsgenome
   (package
     (name "r-bsgenome")
-    (version "1.52.0")
+    (version "1.54.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "BSgenome" version))
               (sha256
                (base32
-                "0zwx42s73hc1vhn0v82i67mcixdwwc6n6q5h5vpnhpxlm4qwgqzp"))))
+                "0nn1b3h4hmnx5whf2cmzmyxdrcf4myj8c38rwr0sw4rc07xfzndy"))))
     (properties
      `((upstream-name . "BSgenome")))
     (build-system r-build-system)
@@ -8048,13 +8217,13 @@ genome data packages and support for efficient SNP representation.")
 (define-public r-impute
   (package
     (name "r-impute")
-    (version "1.58.0")
+    (version "1.60.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "impute" version))
               (sha256
                (base32
-                "144jb889979cv3il2zxqk724v3sj1wnzjm3lkspxcvk29dbb9q8j"))))
+                "0igz1phjd1j9bg9z4kyy7j8v9bxi9sdwz4df26r51i2vavlbrf4q"))))
     (native-inputs
      `(("gfortran" ,gfortran)))
     (build-system r-build-system)
@@ -8068,13 +8237,13 @@ microarray data, using nearest neighbor averaging.")
 (define-public r-seqpattern
   (package
     (name "r-seqpattern")
-    (version "1.16.0")
+    (version "1.18.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "seqPattern" version))
               (sha256
                (base32
-                "1ljqscbmrmi5d4lzzvg2d86sqzch26yxw57d33qyid300wm60db2"))))
+                "1gxrq6s2hiyac69idh5r1nbr1s69n0hg4ap2skm4g6857av9pwqf"))))
     (properties
      `((upstream-name . "seqPattern")))
     (build-system r-build-system)
@@ -8095,13 +8264,13 @@ reference point and sorted by a user defined feature.")
 (define-public r-genomation
   (package
     (name "r-genomation")
-    (version "1.16.0")
+    (version "1.18.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "genomation" version))
               (sha256
                (base32
-                "06i711pwq9znd7plh0p25skxnnh5dyl61c33k9gma243wvlzmlkj"))))
+                "1sba928h23b67gr3i4yj1bg655g24l3bcgsf5gvymzrv5idrss1l"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-biostrings" ,r-biostrings)
@@ -8169,14 +8338,14 @@ downloaded from Encode.")
 (define-public r-seqlogo
   (package
     (name "r-seqlogo")
-    (version "1.50.0")
+    (version "1.52.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "seqLogo" version))
        (sha256
         (base32
-         "1z63imr1a24nqijpvxaxlakykcsadfqyxl2b3vlllncxnjjvb52b"))))
+         "0s94aahp8ma1crmp83dz65ifjwrx6wqi3q6005lmbp8yk2x1rkj4"))))
     (properties `((upstream-name . "seqLogo")))
     (build-system r-build-system)
     (home-page "https://bioconductor.org/packages/seqLogo")
@@ -8190,14 +8359,14 @@ Stephens (1990).")
 (define-public r-motifrg
   (package
     (name "r-motifrg")
-    (version "1.28.0")
+    (version "1.30.0")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "motifRG" version))
        (sha256
         (base32
-         "02c7fbjwdq7pk96bd2rn07l9r2hqy00s3hfpli5ybmwgvc9h9z4z"))))
+         "0s6wdr036lra9x93r9k8wvicbkgzypjh3jp46h92yacw8d829k0d"))))
     (properties `((upstream-name . "motifRG")))
     (build-system r-build-system)
     (propagated-inputs
@@ -8217,7 +8386,7 @@ throughput genetic sequencing data sets using regression methods.")
 (define-public r-qtl
  (package
   (name "r-qtl")
-  (version "1.44-9")
+  (version "1.46-2")
   (source
    (origin
     (method url-fetch)
@@ -8225,16 +8394,16 @@ throughput genetic sequencing data sets using regression methods.")
                         version ".tar.gz"))
     (sha256
      (base32
-      "03lmvydln8b7666b6w46qbryhf83vsd11d4y2v95rfgvqgq66l1i"))))
+      "0rbwcnvyy96gq1dsgpxx03pv423qya26h6ws5y0blj3blfdmj83a"))))
   (build-system r-build-system)
-  (home-page "http://rqtl.org/")
+  (home-page "https://rqtl.org/")
   (synopsis "R package for analyzing QTL experiments in genetics")
   (description "R/qtl is an extension library for the R statistics
 system.  It is used to analyze experimental crosses for identifying
 genes contributing to variation in quantitative traits (so-called
 quantitative trait loci, QTLs).
 
-Using a hidden Markov model, R/qtl allows to estimate genetic maps, to
+Using a hidden Markov model, R/qtl estimates genetic maps, to
 identify genotyping errors, and to perform single-QTL and two-QTL,
 two-dimensional genome scans.")
   (license license:gpl3)))
@@ -8271,13 +8440,13 @@ R/qtl, to better handle high-dimensional data and complex cross designs.")
 (define-public r-zlibbioc
   (package
     (name "r-zlibbioc")
-    (version "1.30.0")
+    (version "1.32.0")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "zlibbioc" version))
               (sha256
                (base32
-                "1h0a2ps2rfk9azzps7p23sxj5z1giv8gcx0ypzgyz7fkr4xi9z7k"))))
+                "1xh7qan0w62mzsmanbx9vcj6ygdfhzw1abaxijkq7f4nh5w87idj"))))
     (properties
      `((upstream-name . "zlibbioc")))
     (build-system r-build-system)
@@ -8303,7 +8472,7 @@ libraries for systems that do not have these available via other means.")
     (propagated-inputs
      `(("r-optparse" ,r-optparse)
        ("r-rcolorbrewer" ,r-rcolorbrewer)))
-    (home-page "http://www.e-rna.org/r-chie/index.cgi")
+    (home-page "https://www.e-rna.org/r-chie/index.cgi")
     (synopsis "Analysis framework for RNA secondary structure")
     (description
      "The R4RNA package aims to be a general framework for the analysis of RNA
@@ -8313,14 +8482,14 @@ secondary structure and comparative analysis in R.")
 (define-public r-rhtslib
   (package
     (name "r-rhtslib")
-    (version "1.18.0")
+    (version "1.18.1")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "Rhtslib" version))
        (sha256
         (base32
-         "04inkq44lxwymqv51mxgaphasqjcdc9rl5p58imnrdm0kszs8prm"))))
+         "0gkbrmrcg55c9s5166ifljlx0v25rv4ijdyp4wf4c292xd6chy2l"))))
     (properties `((upstream-name . "Rhtslib")))
     (build-system r-build-system)
     ;; Without this a temporary directory ends up in the Rhtslib.so binary,
@@ -8365,7 +8534,7 @@ of other R packages who wish to make use of HTSlib.")
     (home-page "https://bioconductor.org/packages/bamsignals")
     (synopsis "Extract read count signals from bam files")
     (description
-     "This package allows to efficiently obtain count vectors from indexed bam
+     "This package efficiently obtains count vectors from indexed bam
 files.  It counts the number of nucleotide sequence reads in given genomic
 ranges and it computes reads profiles and coverage profiles.  It also handles
 paired-end data.")
@@ -8580,14 +8749,16 @@ factors bound at the specific regions.")
 (define-public r-tximport
   (package
     (name "r-tximport")
-    (version "1.14.0")
+    (version "1.14.2")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "tximport" version))
               (sha256
                (base32
-                "09r23n2812q89by0r0cz2fx1gfnmn3jb3hwbg61m52bika82pakj"))))
+                "1avy0zhgnszmg0dr9w74yq9ml10kwdrrgcni2wysrd48zzskc1n0"))))
     (build-system r-build-system)
+    (native-inputs
+     `(("r-knitr" ,r-knitr)))
     (home-page "https://bioconductor.org/packages/tximport")
     (synopsis "Import and summarize transcript-level estimates for gene-level analysis")
     (description
@@ -8923,7 +9094,7 @@ replacement for strverscmp.")
                (("['\"]matplotlib.*?['\"]")
                 "'matplotlib'"))
              #t)))))
-    (home-page "http://multiqc.info")
+    (home-page "https://multiqc.info")
     (synopsis "Aggregate bioinformatics analysis reports")
     (description
      "MultiQC is a tool to aggregate bioinformatics results across many
@@ -9055,6 +9226,8 @@ number detection tools.")
        ("r-rtracklayer" ,r-rtracklayer)
        ("r-s4vectors" ,r-s4vectors)
        ("r-zlibbioc" ,r-zlibbioc)))
+    (native-inputs
+     `(("r-knitr" ,r-knitr))) ; for vignettes
     (inputs
      `(("zlib" ,zlib)))
     (home-page "https://github.com/al2na/methylKit")
@@ -9103,14 +9276,14 @@ unmodeled, or latent sources of noise.")
 (define-public r-seqminer
   (package
     (name "r-seqminer")
-    (version "7.1")
+    (version "8.0")
     (source
      (origin
        (method url-fetch)
        (uri (cran-uri "seqminer" version))
        (sha256
         (base32
-         "1jydcpkw4rwfp983j83kipvsvr10as9pb49zzn3c2v09k1gh3ymy"))))
+         "00jzj8mwb0zaiwlifd41b26mrq9mzigj18nc29dydi0r42hxg16i"))))
     (build-system r-build-system)
     (inputs
      `(("zlib" ,zlib)))
@@ -9324,6 +9497,8 @@ analysis.")
        ("r-ggplot2" ,r-ggplot2)
        ("r-lattice" ,r-lattice)
        ("r-limma" ,r-limma)))
+    (native-inputs
+     `(("r-knitr" ,r-knitr))) ; for vignettes
     (home-page "https://bioconductor.org/packages/release/bioc/html/vsn.html")
     (synopsis "Variance stabilization and calibration for microarray data")
     (description
@@ -9485,13 +9660,13 @@ and irregular enzymatic cleavages, mass measurement accuracy, etc.")
 (define-public r-seurat
   (package
     (name "r-seurat")
-    (version "3.1.1")
+    (version "3.1.4")
     (source (origin
               (method url-fetch)
               (uri (cran-uri "Seurat" version))
               (sha256
                (base32
-                "084lr2fjdksshsmv1ww82bgn3a9mml7kswsidjrs89snabgvn360"))))
+                "0lhjbjhv1hnx5i3gkx41k68i8ykay3f24708h30wx9xywww9lsvi"))))
     (properties `((upstream-name . "Seurat")))
     (build-system r-build-system)
     (propagated-inputs
@@ -9514,6 +9689,7 @@ and irregular enzymatic cleavages, mass measurement accuracy, etc.")
        ("r-mass" ,r-mass)
        ("r-matrix" ,r-matrix)
        ("r-metap" ,r-metap)
+       ("r-patchwork" ,r-patchwork)
        ("r-pbapply" ,r-pbapply)
        ("r-plotly" ,r-plotly)
        ("r-png" ,r-png)
@@ -9530,7 +9706,6 @@ and irregular enzymatic cleavages, mass measurement accuracy, etc.")
        ("r-rtsne" ,r-rtsne)
        ("r-scales" ,r-scales)
        ("r-sctransform" ,r-sctransform)
-       ("r-sdmtools" ,r-sdmtools)
        ("r-tsne" ,r-tsne)
        ("r-uwot" ,r-uwot)))
     (home-page "http://www.satijalab.org/seurat")
@@ -9593,7 +9768,7 @@ classes.")
        ("r-locfit" ,r-locfit)
        ("r-mass" ,r-mass)
        ("r-rcolorbrewer" ,r-rcolorbrewer)))
-    (home-page "http://www-huber.embl.de/users/anders/DESeq")
+    (home-page "https://www-huber.embl.de/users/anders/DESeq/")
     (synopsis "Differential gene expression analysis")
     (description
      "This package provides tools for estimating variance-mean dependence in
@@ -9722,7 +9897,7 @@ by the user, helping with quick and reproducible access.")
        ("r-genomicranges" ,r-genomicranges)
        ("r-iranges" ,r-iranges)
        ("r-s4vectors" ,r-s4vectors)))
-    (home-page "http://www.bioinf.jku.at/software/fastseg/index.html")
+    (home-page "https://www.bioinf.jku.at/software/fastseg/index.html")
     (synopsis "Fast segmentation algorithm for genetic sequencing data")
     (description
      "Fastseg implements a very fast and efficient segmentation algorithm.
@@ -9774,7 +9949,8 @@ microarrays or GRanges for sequencing data.")
      `(("r-annotationdbi" ,r-annotationdbi)
        ("r-graph" ,r-graph)
        ("r-keggrest" ,r-keggrest)))
-    (home-page "http://www.biomedcentral.com/1471-2105/10/161")
+    (home-page (string-append "https://bmcbioinformatics.biomedcentral.com/"
+                              "articles/10.1186/1471-2105-10-161"))
     (synopsis "Generally applicable gene-set enrichment for pathway analysis")
     (description
      "GAGE is a published method for gene set (enrichment or GSEA) or pathway
@@ -10155,7 +10331,7 @@ the earlier snpMatrix package, allowing for uncertainty in genotypes.")
               (method url-fetch)
               ;; We cannot use bioconductor-uri here because this tarball is
               ;; located under "data/annotation/" instead of "bioc/".
-              (uri (string-append "http://www.bioconductor.org/packages/"
+              (uri (string-append "https://www.bioconductor.org/packages/"
                                   "release/data/annotation/src/contrib/"
                                   "Homo.sapiens_"
                                   version ".tar.gz"))
@@ -10306,14 +10482,14 @@ family of feature/genome hypotheses.")
 (define-public r-gviz
   (package
     (name "r-gviz")
-    (version "1.30.0")
+    (version "1.30.3")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "Gviz" version))
        (sha256
         (base32
-         "1p7n4yc77272rd8ybsim3rcg6kf6wmc95pwwav40b754imxn263z"))))
+         "0c9i26h5czm60n1bxzmdxxpywcj0sig6wcj913pb41mr83bbgra3"))))
     (properties `((upstream-name . "Gviz")))
     (build-system r-build-system)
     (propagated-inputs
@@ -10458,14 +10634,14 @@ provided.")
 (define-public r-hdf5array
   (package
     (name "r-hdf5array")
-    (version "1.14.1")
+    (version "1.14.3")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "HDF5Array" version))
        (sha256
         (base32
-         "04hd02zd5jix5p2zg10asmwjg1fynqgmclbhbmk7fb6arx5hm11f"))))
+         "1z153a7nxmlml72pl1saasj2il9g5ahpynkpv3mkhhsvl5kbwbh6"))))
     (properties `((upstream-name . "HDF5Array")))
     (build-system r-build-system)
     (inputs
@@ -10621,13 +10797,13 @@ libraries.")
 (define-public r-scater
   (package
     (name "r-scater")
-    (version "1.14.5")
+    (version "1.14.6")
     (source (origin
               (method url-fetch)
               (uri (bioconductor-uri "scater" version))
               (sha256
                (base32
-                "1c2p1dqz4lckk657v5g0labxrf0i21l0wa3rvszslmrszn60mkif"))))
+                "0sxd1s8wdlj9926bagq4crjrk1nnmh3j3bhgrw160zfgc3y8pzck"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-beachmat" ,r-beachmat)
@@ -10655,14 +10831,14 @@ quality control.")
 (define-public r-scran
   (package
     (name "r-scran")
-    (version "1.14.5")
+    (version "1.14.6")
     (source
      (origin
        (method url-fetch)
        (uri (bioconductor-uri "scran" version))
        (sha256
         (base32
-         "0ydy6gvpgpvrs4ryk1qvmmxp6cpaizs294jwg42jawxndkds1l3y"))))
+         "1y8wlgk5zbv7c7gcp0ahfpbh9lifab7y3zwf0093fzaw7vr1y6cr"))))
     (build-system r-build-system)
     (propagated-inputs
      `(("r-beachmat" ,r-beachmat)
@@ -10808,7 +10984,7 @@ droplet sequencing.  It has been particularly tailored for Drop-seq.")
 (define-public sambamba
   (package
     (name "sambamba")
-    (version "0.6.8")
+    (version "0.7.1")
     (source
      (origin
        (method git-fetch)
@@ -10818,7 +10994,7 @@ droplet sequencing.  It has been particularly tailored for Drop-seq.")
        (file-name (string-append name "-" version "-checkout"))
        (sha256
         (base32
-         "0k0cz3qcv98p6cq09zlbgnjsggxcqbcmzxg5zikgcgbr2nfq4lry"))))
+         "111h05b60pj8dxbidiamy4imc92x2962b3lmb7wgysl6lx064qis"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; there is no test target
@@ -10837,7 +11013,6 @@ droplet sequencing.  It has been particularly tailored for Drop-seq.")
          (add-after 'unpack 'place-biod-and-undead
            (lambda* (#:key inputs #:allow-other-keys)
              (copy-recursively (assoc-ref inputs "biod") "BioD")
-             (copy-recursively (assoc-ref inputs "undead") "undeaD")
              #t))
          (add-after 'unpack 'unbundle-prerequisites
            (lambda _
@@ -10851,14 +11026,15 @@ droplet sequencing.  It has been particularly tailored for Drop-seq.")
              (let* ((out   (assoc-ref outputs "out"))
                     (bin   (string-append out "/bin")))
                (mkdir-p bin)
-               (install-file "bin/sambamba" bin)
+               (copy-file (string-append "bin/sambamba-" ,version)
+                          (string-append bin "/sambamba"))
                #t))))))
     (native-inputs
      `(("ldc" ,ldc)
        ("rdmd" ,rdmd)
        ("python" ,python)
        ("biod"
-        ,(let ((commit "4f1a7d2fb7ef3dfe962aa357d672f354ebfbe42e"))
+        ,(let ((commit "7969eb0a847b05874e83ffddead26e193ece8101"))
            (origin
              (method git-fetch)
              (uri (git-reference
@@ -10869,24 +11045,11 @@ droplet sequencing.  It has been particularly tailored for Drop-seq.")
                                        "-checkout"))
              (sha256
               (base32
-               "1k5pdjv1qvi0a3rwd1sfq6zbj37l86i7bf710m4c0y6737lxj426")))))
-       ("undead"
-        ,(let ((commit "9be93876982b5f14fcca60832563b3cd767dd84d"))
-           (origin
-             (method git-fetch)
-             (uri (git-reference
-                   (url "https://github.com/biod/undeaD.git")
-                   (commit commit)))
-             (file-name (string-append "undead-"
-                                       (string-take commit 9)
-                                       "-checkout"))
-             (sha256
-              (base32
-               "1xfarj0nqlmi5jd1vmcmm7pabzaf9hxyvk6hp0d6jslb5k9r8r3d")))))))
+               "0mjxsmbmv0jxl3pq21p8j5r829d648if8q58ka50b2956lc6qkpm")))))))
     (inputs
      `(("lz4" ,lz4)
        ("htslib" ,htslib-for-sambamba)))
-    (home-page "http://lomereiter.github.io/sambamba")
+    (home-page "https://lomereiter.github.io/sambamba/")
     (synopsis "Tools for working with SAM/BAM data")
     (description "Sambamba is a high performance modern robust and
 fast tool (and library), written in the D programming language, for
@@ -11003,7 +11166,7 @@ with narrow binding events such as transcription factor ChIP-seq.")
        ("cutadapt" ,cutadapt)))
     (native-inputs
      `(("unzip" ,unzip)))
-    (home-page "http://www.bioinformatics.babraham.ac.uk/projects/trim_galore/")
+    (home-page "https://www.bioinformatics.babraham.ac.uk/projects/trim_galore/")
     (synopsis "Wrapper around Cutadapt and FastQC")
     (description "Trim Galore! is a wrapper script to automate quality and
 adapter trimming as well as quality control, with some added functionality to
@@ -11052,8 +11215,8 @@ import matplotlib
 matplotlib.use('Agg')
 " line)))
                ;; Make sure GESS has all modules in its path
-               (wrap-program (string-append target "GESS.py")
-                 `("PYTHONPATH" ":" prefix (,target ,(getenv "PYTHONPATH"))))
+               (wrap-script (string-append target "GESS.py")
+                 `("PYTHONPATH" ":" = (,target ,(getenv "PYTHONPATH"))))
                (mkdir-p bin)
                (symlink (string-append target "GESS.py")
                         (string-append bin "GESS.py"))
@@ -11064,8 +11227,9 @@ matplotlib.use('Agg')
        ("python2-scipy" ,python2-scipy)
        ("python2-numpy" ,python2-numpy)
        ("python2-networkx" ,python2-networkx)
-       ("python2-biopython" ,python2-biopython)))
-    (home-page "http://compbio.uthscsa.edu/GESS_Web/")
+       ("python2-biopython" ,python2-biopython)
+       ("guile" ,guile-3.0))) ; for the script wrapper
+    (home-page "https://compbio.uthscsa.edu/GESS_Web/")
     (synopsis "Detect exon-skipping events from raw RNA-seq data")
     (description
      "GESS is an implementation of a novel computational method to detect de
@@ -11316,8 +11480,8 @@ models.  TADbit is complemented by TADkit for visualizing 3D models.")
        ("libpng" ,libpng)
        ("mariadb" ,mariadb "lib")
        ("mariadb-dev" ,mariadb "dev")
-       ("openssl" ,openssl)))
-    (home-page "http://genome.cse.ucsc.edu/index.html")
+       ("openssl" ,openssl-1.0)))
+    (home-page "https://genome.cse.ucsc.edu/index.html")
     (synopsis "Assorted bioinformatics utilities")
     (description "This package provides the kentUtils, a selection of
 bioinformatics utilities used in combination with the UCSC genome
@@ -11477,7 +11641,7 @@ Browser.")
            (sha256
             (base32 "138mwsr4nf5qif4mrxx286mpnagxd1xwl6k8aidrjgknaqg88zyr"))))
        ("uglify-js" ,uglify-js)))
-    (home-page "http://www.bioinformatics.babraham.ac.uk/projects/bismark/")
+    (home-page "https://www.bioinformatics.babraham.ac.uk/projects/bismark/")
     (synopsis "Map bisulfite treated sequence reads and analyze methylation")
     (description "Bismark is a program to map bisulfite treated sequencing
 reads to a genome of interest and perform methylation calls in a single step.
@@ -11580,7 +11744,7 @@ using nucleotide or amino-acid sequence data.")
      `(("hdf5" ,hdf5)
        ("htslib" ,htslib)
        ("zlib" ,zlib)))
-    (home-page "http://pachterlab.github.io/kallisto/")
+    (home-page "https://pachterlab.github.io/kallisto/")
     (synopsis "Near-optimal RNA-Seq quantification")
     (description
      "Kallisto is a program for quantifying abundances of transcripts from
@@ -11755,7 +11919,7 @@ dependency like SeqAn.")
        ("zlib" ,zlib)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.cs.cmu.edu/~ckingsf/software/sailfish")
+    (home-page "https://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
@@ -11991,23 +12155,6 @@ graphs.  This library makes it easy to work with @file{.loom} files for
 single-cell RNA-seq data.")
     (license license:bsd-3)))
 
-;; pigx-scrnaseq does not work with the latest version of loompy.
-(define-public python-loompy-for-pigx-scrnaseq
-  (package (inherit python-loompy)
-    (name "python-loompy")
-    (version "2.0.3")
-    (source (origin
-              (method git-fetch)
-              (uri (git-reference
-                    (url "https://github.com/linnarsson-lab/loompy.git")
-                    (commit (string-append "v" version))))
-              (file-name (git-file-name name version))
-              (sha256
-               (base32
-                "0pjyl532pl8sbv71yci6h0agchn0naw2qjcwj50n6afrsahbsag3"))))
-    ;; There are none.
-    (arguments '(#:tests? #f))))
-
 ;; We cannot use the latest commit because it requires Java 9.
 (define-public java-forester
   (let ((commit "86b07efe302d5094b42deed9260f719a4c4ac2e6")
@@ -12090,8 +12237,8 @@ reading, writing, and exporting phylogenetic trees.")
     (version "1.005")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://search.maven.org/remotecontent?"
-                                  "filepath=org/biojava/thirdparty/forester/"
+              (uri (string-append "https://repo1.maven.org/maven2/"
+                                  "org/biojava/thirdparty/forester/"
                                   version "/forester-" version "-sources.jar"))
               (file-name (string-append name "-" version ".jar"))
               (sha256
@@ -12167,7 +12314,8 @@ reading, writing, and exporting phylogenetic trees.")
            (method url-fetch)
            (uri (string-append "https://raw.githubusercontent.com/cmzmasek/forester/"
                                "29e04321615da6b35c1e15c60e52caf3f21d8e6a/"
-                               "forester/java/classes/resources/synth_look_and_feel_1.xml"))
+                               "forester/java/classes/resources/"
+                               "synth_look_and_feel_1.xml"))
            (file-name (string-append name "-synth-look-and-feel-" version ".xml"))
            (sha256
             (base32
@@ -12622,7 +12770,7 @@ expression report comparing samples in an easily configurable manner.")
 (define-public pigx-chipseq
   (package
     (name "pigx-chipseq")
-    (version "0.0.41")
+    (version "0.0.42")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/BIMSBbioinfo/pigx_chipseq/"
@@ -12630,7 +12778,7 @@ expression report comparing samples in an easily configurable manner.")
                                   "/pigx_chipseq-" version ".tar.gz"))
               (sha256
                (base32
-                "0akbxdmsjsq5fzbwaap04hqjpsfgv1l6yrc2pwgbya1xgqvcq6vy"))))
+                "0xbvgqpk32a8iczhvac56cacr46rdkqb0allhhpvmj940idf72bi"))))
     (build-system gnu-build-system)
     ;; parts of the tests rely on access to the network
     (arguments '(#:tests? #f))
@@ -12751,7 +12899,7 @@ methylation and segmentation.")
 (define-public pigx-scrnaseq
   (package
     (name "pigx-scrnaseq")
-    (version "0.0.8")
+    (version "1.1.4")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/BIMSBbioinfo/pigx_scrnaseq/"
@@ -12759,27 +12907,21 @@ methylation and segmentation.")
                                   "/pigx_scrnaseq-" version ".tar.gz"))
               (sha256
                (base32
-                "0zv0sc5amivxhb95vx2gfx6l9bh7n80fh7h47dalnwxxnfvnzai4"))))
+                "1d5l3gywypi67yz9advxq5xkgfhr4733gj0bwnngm723i3hdf5w9"))))
     (build-system gnu-build-system)
-    (arguments
-     `(#:configure-flags
-       (list (string-append "PICARDJAR=" (assoc-ref %build-inputs "java-picard")
-                           "/share/java/picard.jar")
-            (string-append "DROPSEQJAR=" (assoc-ref %build-inputs "dropseq-tools")
-                           "/share/java/dropseq.jar"))))
     (inputs
      `(("coreutils" ,coreutils)
        ("perl" ,perl)
-       ("dropseq-tools" ,dropseq-tools)
        ("fastqc" ,fastqc)
-       ("java-picard" ,java-picard-2.10.3) ; same as for dropseq
+       ("flexbar" ,flexbar)
        ("java" ,icedtea-8)
+       ("jellyfish" ,jellyfish)
        ("python-wrapper" ,python-wrapper)
        ("python-pyyaml" ,python-pyyaml)
        ("python-pandas" ,python-pandas)
        ("python-magic" ,python-magic)
        ("python-numpy" ,python-numpy)
-       ("python-loompy" ,python-loompy-for-pigx-scrnaseq)
+       ("python-loompy" ,python-loompy)
        ("ghc-pandoc" ,ghc-pandoc)
        ("ghc-pandoc-citeproc" ,ghc-pandoc-citeproc)
        ("samtools" ,samtools)
@@ -12806,6 +12948,7 @@ methylation and segmentation.")
        ("r-rtsne" ,r-rtsne)
        ("r-scater" ,r-scater)
        ("r-scran" ,r-scran)
+       ("r-seurat" ,r-seurat)
        ("r-singlecellexperiment" ,r-singlecellexperiment)
        ("r-stringr" ,r-stringr)
        ("r-yaml" ,r-yaml)))
@@ -12926,14 +13069,14 @@ analyses in addition to large-scale sequence-level searches.")
 (define-public r-diversitree
   (package
     (name "r-diversitree")
-    (version "0.9-11")
+    (version "0.9-13")
     (source
       (origin
         (method url-fetch)
         (uri (cran-uri "diversitree" version))
         (sha256
          (base32
-          "1jqfjmmaigq581l4zxysmkhld0xv6izlbr1hihf9zplkix36majc"))))
+          "00vi4klywi35hd170ksjv3xja3hqqbkcidcnrrlpgv4179k0azix"))))
     (build-system r-build-system)
     (native-inputs
      `(("gfortran" ,gfortran)))
@@ -13031,7 +13174,7 @@ version does count multisplits.")
                 ((or (string-prefix? "armhf" system)
                      (string-prefix? "aarch64" system))
                  "arm_neon=1")
-                (_ "sse2only=1"))))
+                (else "sse2only=1"))))
        #:phases
        (modify-phases %standard-phases
          (delete 'configure)
@@ -13222,18 +13365,14 @@ in RNA-seq data.")
 (define-public python-scanpy
   (package
     (name "python-scanpy")
-    (version "1.4")
-    ;; Fetch from git because the pypi tarball does not include tests.
+    (version "1.4.5.1")
     (source
      (origin
-       (method git-fetch)
-       (uri (git-reference
-             (url "https://github.com/theislab/scanpy.git")
-             (commit version)))
-       (file-name (git-file-name name version))
+       (method url-fetch)
+       (uri (pypi-uri "scanpy" version))
        (sha256
         (base32
-         "0zn6x6c0cnm1a20i6isigwb51g3pr9zpjk8r1minjqnxi5yc9pm4"))))
+         "14kh1ji70xxhmri5q8sgcibsidhr6f221wxrcw8a5xvibj5da17j"))))
     (build-system python-build-system)
     (arguments
      `(#:phases
@@ -13260,18 +13399,23 @@ in RNA-seq data.")
        ("python-igraph" ,python-igraph)
        ("python-joblib" ,python-joblib)
        ("python-louvain" ,python-louvain)
+       ("python-legacy-api-wrap" ,python-legacy-api-wrap)
        ("python-matplotlib" ,python-matplotlib)
        ("python-natsort" ,python-natsort)
        ("python-networkx" ,python-networkx)
        ("python-numba" ,python-numba)
+       ("python-packaging" ,python-packaging)
        ("python-pandas" ,python-pandas)
+       ("python-patsy" ,python-patsy)
        ("python-scikit-learn" ,python-scikit-learn)
        ("python-scipy" ,python-scipy)
        ("python-seaborn" ,python-seaborn)
        ("python-statsmodels" ,python-statsmodels)
-       ("python-tables" ,python-tables)))
+       ("python-tables" ,python-tables)
+       ("python-umap-learn" ,python-umap-learn)))
     (native-inputs
-     `(("python-pytest" ,python-pytest)))
+     `(("python-pytest" ,python-pytest)
+       ("python-setuptools-scm" ,python-setuptools-scm)))
     (home-page "https://github.com/theislab/scanpy")
     (synopsis "Single-Cell Analysis in Python.")
     (description "Scanpy is a scalable toolkit for analyzing single-cell gene
@@ -13284,21 +13428,23 @@ million cells.")
 (define-public python-bbknn
   (package
     (name "python-bbknn")
-    (version "1.3.1")
+    (version "1.3.6")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "bbknn" version))
        (sha256
         (base32
-         "1qgdganvj3lyxj84v7alm23b9vqhwpn8z0115qndpnpy90qxynwz"))))
+         "1jbsh01f57zj4bhvjr3jh4532zznqd6nccmgrl3qi9gnhkf7c4y0"))))
     (build-system python-build-system)
+    (arguments
+     `(#:tests? #f)) ; TODO: Enable after migration to scikit-learn.
     (propagated-inputs
      `(("python-annoy" ,python-annoy)
        ("python-cython" ,python-cython)
-       ("python-faiss" ,python-faiss)
        ("python-numpy" ,python-numpy)
-       ("python-scanpy" ,python-scanpy)))
+       ("python-scipy" ,python-scipy)
+       ("python-umap-learn" ,python-umap-learn)))
     (home-page "https://github.com/Teichlab/bbknn")
     (synopsis "Batch balanced KNN")
     (description "BBKNN is a batch effect removal tool that can be directly
@@ -13376,20 +13522,60 @@ reference transcripts provided in a annotation file (also in GTF/GFF3 format).
         license:expat                   ;license for gffcompare
         license:artistic2.0)))))        ;license for gclib
 
+(define-public intervaltree
+  (let ((commit "b90527f9e6d51cd36ecbb50429e4524d3a418ea5"))
+    (package
+      (name "intervaltree")
+      (version (git-version "0.0.0" "1" commit))
+      (source
+        (origin
+          (method git-fetch)
+          (uri (git-reference
+                 (url "https://github.com/ekg/intervaltree/")
+                 (commit commit)))
+          (file-name (git-file-name name version))
+          (sha256
+           (base32 "0rgv6q5fl4x5d74n6p5wvdna6zmbdbqpb4jqqh6vq3670gn08xad"))))
+      (build-system gnu-build-system)
+      (arguments
+       '(#:tests? #f ; No tests.
+         #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
+                            "DESTDIR=\"\"")
+         #:phases
+         (modify-phases %standard-phases
+           (delete 'configure)))) ; There is no configure phase.
+      (home-page "https://github.com/ekg/intervaltree")
+      (synopsis "Minimal C++ interval tree implementation")
+      (description "An interval tree can be used to efficiently find a set of
+numeric intervals overlapping or containing another interval.  This library
+provides a basic implementation of an interval tree using C++ templates,
+allowing the insertion of arbitrary types into the tree.")
+      (license license:expat))))
+
 (define-public python-intervaltree
   (package
     (name "python-intervaltree")
-    (version "2.1.0")
+    (version "3.0.2")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "intervaltree" version))
        (sha256
         (base32
-         "02w191m9zxkcjqr1kv2slxvhymwhj3jnsyy3a28b837pi15q19dc"))))
+         "0wz234g6irlm4hivs2qzmnywk0ss06ckagwh15nflkyb3p462kyb"))))
     (build-system python-build-system)
-    ;; FIXME: error when collecting tests
-    (arguments '(#:tests? #f))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         ;; pytest seems to have a check to make sure the user is testing
+         ;; their checked-out code and not an installed, potentially
+         ;; out-of-date copy. This is harmless here, since we just installed
+         ;; the package, so we disable the check to avoid skipping tests
+         ;; entirely.
+         (add-before 'check 'import-mismatch-error-workaround
+           (lambda _
+             (setenv "PY_IGNORE_IMPORTMISMATCH" "1")
+             #t)))))
     (propagated-inputs
      `(("python-sortedcontainers" ,python-sortedcontainers)))
     (native-inputs
@@ -13431,14 +13617,14 @@ bgzipped text file that contains a pair of genomic coordinates per line.")
 (define-public python-pyfaidx
   (package
     (name "python-pyfaidx")
-    (version "0.5.4.2")
+    (version "0.5.8")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "pyfaidx" version))
        (sha256
         (base32
-         "0y5zyjksj1rdglj601xd2bbni5abhdh622y3ck76chyzxz9z4rx8"))))
+         "038xi3a6zvrxbyyfpp64ka8pcjgsdq4fgw9cl5lpxbvmm1bzzw2q"))))
     (build-system python-build-system)
     (propagated-inputs
      `(("python-six" ,python-six)))
@@ -13449,35 +13635,40 @@ bgzipped text file that contains a pair of genomic coordinates per line.")
 fasta subsequences.")
     (license license:bsd-3)))
 
+(define-public python2-pyfaidx
+  (package-with-python2 python-pyfaidx))
+
 (define-public python-cooler
   (package
     (name "python-cooler")
-    (version "0.7.11")
+    (version "0.8.7")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "cooler" version))
        (sha256
         (base32
-         "08k5nxnxa6qsbk15z5z0q01n28042k87wi4905hh95rzqib15mhx"))))
+         "01g6gqix9ba27sappz6nfyiwabzrlf8i5fn8kwcz8ra356cq9crp"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-biopython" ,python-biopython)
+     `(("python-asciitree" ,python-asciitree)
+       ("python-biopython" ,python-biopython)
        ("python-click" ,python-click)
        ("python-cytoolz" ,python-cytoolz)
        ("python-dask" ,python-dask)
        ("python-h5py" ,python-h5py)
        ("python-multiprocess" ,python-multiprocess)
+       ("python-numpy" ,python-numpy)
        ("python-pandas" ,python-pandas)
        ("python-pyfaidx" ,python-pyfaidx)
        ("python-pypairix" ,python-pypairix)
        ("python-pysam" ,python-pysam)
-       ("python-scipy" ,python-scipy)))
+       ("python-pyyaml" ,python-pyyaml)
+       ("python-scipy" ,python-scipy)
+       ("python-simplejson" ,python-simplejson)))
     (native-inputs
      `(("python-mock" ,python-mock)
-       ("python-nose" ,python-nose)
-       ("python-numpydoc" ,python-numpydoc)
-       ("python-sphinx" ,python-sphinx)))
+       ("python-pytest" ,python-pytest)))
     (home-page "https://github.com/mirnylab/cooler")
     (synopsis "Sparse binary format for genomic interaction matrices")
     (description
@@ -13486,6 +13677,46 @@ storage format, called @code{cool}, used to store genomic interaction data,
 such as Hi-C contact matrices.")
     (license license:bsd-3)))
 
+(define-public python-hicmatrix
+  (package
+    (name "python-hicmatrix")
+    (version "12")
+    (source
+     (origin
+       ;; Version 12 is not available on pypi.
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/deeptools/HiCMatrix.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1xhdyx16f3brgxgxybixdi64ki8nbbkq5vk4h9ahi11pzpjfn1pj"))))
+    (build-system python-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'relax-requirements
+           (lambda _
+             (substitute* '("requirements.txt"
+                            "setup.py")
+               (("cooler *=+ *0.8.5")
+                "cooler==0.8.*"))
+             #t)))))
+    (propagated-inputs
+     `(("python-cooler" ,python-cooler)
+       ("python-intervaltree" ,python-intervaltree)
+       ("python-numpy" ,python-numpy)
+       ("python-pandas" ,python-pandas)
+       ("python-scipy" ,python-scipy)
+       ("python-tables" ,python-tables)))
+    (home-page "https://github.com/deeptools/HiCMatrix/")
+    (synopsis "HiCMatrix class for HiCExplorer and pyGenomeTracks")
+    (description
+     "This helper package implements the @code{HiCMatrix} class for
+the HiCExplorer and pyGenomeTracks packages.")
+    (license license:gpl3+)))
+
 (define-public python-hicexplorer
   (package
     (name "python-hicexplorer")
@@ -13526,7 +13757,7 @@ such as Hi-C contact matrices.")
        ("python-six" ,python-six)
        ("python-tables" ,python-tables)
        ("python-unidecode" ,python-unidecode)))
-    (home-page "http://hicexplorer.readthedocs.io")
+    (home-page "https://hicexplorer.readthedocs.io")
     (synopsis "Process, analyze and visualize Hi-C data")
     (description
      "HiCExplorer is a powerful and easy to use set of tools to process,
@@ -13542,23 +13773,35 @@ genomic scores), long range contacts and the visualization of viewpoints.")
 (define-public python-pygenometracks
   (package
     (name "python-pygenometracks")
-    (version "2.0")
+    (version "3.3")
     (source
      (origin
        (method url-fetch)
        (uri (pypi-uri "pyGenomeTracks" version))
        (sha256
         (base32
-         "1fws6bqsyy9kj3qiabhkqx4wd4i775gsxnhszqd3zg7w67sc1ic5"))))
+         "16laa0wnf4qn9fb9ych4w1vqhqwjss70v0y0f6wp4gwqfrlgac0f"))))
     (build-system python-build-system)
+    (arguments
+     `(#:tests? #f ; there are none
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'relax-requirements
+           (lambda _
+             (substitute* "setup.py"
+               (("matplotlib ==3.1.1")
+                "matplotlib >=3.1.1"))
+             #t)))))
     (propagated-inputs
-     `(("python-configparser" ,python-configparser)
-       ("python-future" ,python-future)
-       ("python-hicexplorer" ,python-hicexplorer)
+     `(("python-future" ,python-future)
+       ("python-gffutils" ,python-gffutils)
+       ("python-hicmatrix" ,python-hicmatrix)
        ("python-intervaltree" ,python-intervaltree)
        ("python-matplotlib" ,python-matplotlib)
        ("python-numpy" ,python-numpy)
-       ("python-pybigwig" ,python-pybigwig)))
+       ("python-pybigwig" ,python-pybigwig)
+       ("python-pysam" ,python-pysam)
+       ("python-tqdm" ,python-tqdm)))
     (native-inputs
      `(("python-pytest" ,python-pytest)))
     (home-page "https://pygenometracks.readthedocs.io")
@@ -13831,7 +14074,7 @@ absolute GSEA.")
 (define-public jamm
   (package
     (name "jamm")
-    (version "1.0.7.5")
+    (version "1.0.7.6")
     (source
      (origin
        (method git-fetch)
@@ -13841,7 +14084,7 @@ absolute GSEA.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "0ls889jcma1ch9h21jjhnkadgszgqj41842hhcjh6cg88f85qf3i"))))
+         "0bsa5mf9n9q5jz7mmacrra41l7r8rac5vgsn6wv1fb52ya58b970"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f ; there are none
@@ -13905,7 +14148,7 @@ datasets.")
 (define-public ngless
   (package
     (name "ngless")
-    (version "1.0.1")
+    (version "1.1.0")
     (source
      (origin
        (method git-fetch)
@@ -13915,7 +14158,7 @@ datasets.")
        (file-name (git-file-name name version))
        (sha256
         (base32
-         "06ygv8q2zjqsnrid1302yrlhhvb8ik48nq6n0higk3i1mdc8r0dg"))))
+         "1wim8wpqyff080dfcazynrmjwqas38m24m0v350w245mmhrapdma"))))
     (build-system haskell-build-system)
     (arguments
      `(#:haddock? #f ; The haddock phase fails with: NGLess/CmdArgs.hs:20:1:
@@ -14375,6 +14618,8 @@ repeated areas between contigs.")
         (base32
          "0fgygyzqgrq32dv6a00biq1p1cwi6kbl5iqblxq1kklj6b2mzmhs"))))
     (build-system python-build-system)
+    (native-inputs
+     `(("python-joblib" ,python-joblib)))
     (propagated-inputs
      `(("python-click" ,python-click)
        ("python-cython" ,python-cython)
@@ -14583,21 +14828,23 @@ let before_space s =
                (let* ((out (assoc-ref outputs "out"))
                       (bin (string-append out "/bin")))
                  (copy-recursively "bin" bin))
-               #t)))))
+               #t)))
+       #:ocaml ,ocaml-4.07
+       #:findlib ,ocaml4.07-findlib))
       (inputs
        `(("zlib" ,zlib "static")
          ("gsl" ,gsl)
-         ("ocaml-ounit" ,ocaml-ounit)
-         ("ocaml-batteries" ,ocaml-batteries)
-         ("ocaml-camlzip" ,camlzip)
-         ("ocaml-csv" ,ocaml-csv)
-         ("ocaml-sqlite3" ,ocaml-sqlite3)
-         ("ocaml-xmlm" ,ocaml-xmlm)
-         ("ocaml-mcl" ,ocaml-mcl)
-         ("ocaml-gsl" ,ocaml-gsl-1)))
+         ("ocaml-ounit" ,(package-with-ocaml4.07 ocaml-ounit))
+         ("ocaml-batteries" ,(package-with-ocaml4.07 ocaml-batteries))
+         ("ocaml-camlzip" ,(package-with-ocaml4.07 camlzip))
+         ("ocaml-csv" ,(package-with-ocaml4.07 ocaml-csv))
+         ("ocaml-sqlite3" ,ocaml4.07-sqlite3)
+         ("ocaml-xmlm" ,(package-with-ocaml4.07 ocaml-xmlm))
+         ("ocaml-mcl" ,(package-with-ocaml4.07 ocaml-mcl))
+         ("ocaml-gsl" ,ocaml4.07-gsl-1)))
       (native-inputs
        `(("cddlib-src" ,(package-source cddlib))
-         ("ocamlbuild" ,ocamlbuild)
+         ("ocamlbuild" ,(package-with-ocaml4.07 ocamlbuild))
          ("pkg-config" ,pkg-config)))
       (propagated-inputs
        `(("pplacer-scripts" ,pplacer-scripts)))
@@ -14608,7 +14855,7 @@ to maximize phylogenetic likelihood or posterior probability according to a
 reference alignment.  Pplacer is designed to be fast, to give useful
 information about uncertainty, and to offer advanced visualization and
 downstream analysis.")
-      (home-page "http://matsen.fhcrc.org/pplacer")
+      (home-page "https://matsen.fhcrc.org/pplacer/")
       (license license:gpl3))))
 
 ;; This package is installed alongside 'pplacer'.  It is a separate package so
@@ -14664,14 +14911,14 @@ downstream analysis.")
     (build-system python-build-system)
     (arguments
      `(#:python ,python-2
-       #:tests? #f)) ; some tests are interactive
+       #:tests? #f))                    ; some tests are interactive
     (propagated-inputs
      `(("python-dendropy" ,python2-dendropy)
        ("python-matplotlib" ,python2-matplotlib)
        ("python-numpy" ,python2-numpy)
        ("python-pysam" ,python2-pysam)
        ("python-scipy" ,python2-scipy)))
-    (home-page "http://pypi.python.org/pypi/checkm/")
+    (home-page "https://pypi.org/project/Checkm/")
     (synopsis "Assess the quality of putative genome bins")
     (description
      "CheckM provides a set of tools for assessing the quality of genomes
@@ -14861,7 +15108,7 @@ mutations from scRNA-Seq data.")
 (define-public tabixpp
   (package
    (name "tabixpp")
-   (version "1.0.0")
+   (version "1.1.0")
    (source (origin
      (method git-fetch)
      (uri (git-reference
@@ -14869,7 +15116,11 @@ mutations from scRNA-Seq data.")
            (commit (string-append "v" version))))
      (file-name (git-file-name name version))
      (sha256
-      (base32 "08vx6nsipk971cyr8z53rnzwkvlld63kcn1fw0pwddynz91xfny8"))))
+      (base32 "1k2a3vbq96ic4lw72iwp5s3mwwc4xhdffjj584yn6l9637q9j1yd"))
+     (modules '((guix build utils)))
+     (snippet
+      `(begin
+         (delete-file-recursively "htslib") #t))))
    (build-system gnu-build-system)
    (inputs
     `(("htslib" ,htslib)
@@ -14885,6 +15136,7 @@ mutations from scRNA-Seq data.")
             (let ((htslib-ref (assoc-ref inputs "htslib")))
               (invoke "make"
                       (string-append "HTS_LIB=" htslib-ref "/lib/libhts.a")
+                      (string-append "INCLUDES= -I" htslib-ref "/include/htslib")
                       "HTS_HEADERS="    ; No need to check for headers here.
                       (string-append "LIBPATH=-L. -L" htslib-ref "/include")))))
         (replace 'install
@@ -14898,30 +15150,11 @@ mutations from scRNA-Seq data.")
 some of the details of opening and jumping in tabix-indexed files.")
    (license license:expat)))
 
-(define tabixpp-freebayes
-  ;; This version works with FreeBayes while the released
-  ;; version doesn't. The released creates a variable with the name \"vcf\"
-  ;; somewhere, which is also the name of a namespace in vcflib.
-  (let ((commit "bbc63a49acc52212199f92e9e3b8fba0a593e3f7"))
-    (package
-      (inherit tabixpp)
-      (name "tabixpp-freebayes")
-      (version (git-version "0.0.0" "1" commit))
-      (source (origin
-                (method git-fetch)
-                (uri (git-reference
-                      (url "https://github.com/ekg/tabixpp/")
-                      (commit commit)))
-                (file-name (git-file-name name version))
-                (sha256
-                 (base32 "017qsmsc2kyiyzqr9nl8cc6pfldxf16dbn8flx5i59mbqr9ydi7g")))))))
-
 (define-public smithwaterman
-  ;; TODO: Upgrading smithwaterman breaks FreeBayes.
-  (let ((commit "203218b47d45ac56ef234716f1bd4c741b289be1"))
+  (let ((commit "2610e259611ae4cde8f03c72499d28f03f6d38a7"))
     (package
       (name "smithwaterman")
-      (version (string-append "0-1." (string-take commit 7)))
+      (version (git-version "0.0.0" "2" commit))
       (source (origin
         (method git-fetch)
         (uri (git-reference
@@ -14929,17 +15162,21 @@ some of the details of opening and jumping in tabix-indexed files.")
               (commit commit)))
         (file-name (git-file-name name version))
         (sha256
-         (base32 "0z9xsmsv452kgdfbbwydyc6nymg3fwyv8zswls8qjin3r4ia4415"))))
+         (base32 "0i9d8zrxpiracw3mxzd9siybpy62p06rqz9mc2w93arajgbk45bs"))))
       (build-system gnu-build-system)
       (arguments
        `(#:tests? #f ; There are no tests to run.
+         #:make-flags '("libsw.a" "all")
          #:phases
          (modify-phases %standard-phases
            (delete 'configure) ; There is no configure phase.
            (replace 'install
              (lambda* (#:key outputs #:allow-other-keys)
-               (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
-                 (install-file "smithwaterman" bin))
+               (let* ((out (assoc-ref outputs "out"))
+                      (bin (string-append out "/bin"))
+                      (lib (string-append out "/lib")))
+                 (install-file "smithwaterman" bin)
+                 (install-file "libsw.a" lib))
                #t)))))
       (home-page "https://github.com/ekg/smithwaterman")
       (synopsis "Implementation of the Smith-Waterman algorithm")
@@ -15012,125 +15249,135 @@ neural networks.")
       (license license:gpl3))))
 
 (define-public fastahack
-  (let ((commit "c68cebb4f2e5d5d2b70cf08fbdf1944e9ab2c2dd"))
-    (package
-      (name "fastahack")
-      (version (git-version "0.0.0" "1" commit))
-      (source (origin
-        (method git-fetch)
-        (uri (git-reference
-              (url "https://github.com/ekg/fastahack/")
-              (commit commit)))
-        (file-name (git-file-name name version))
-        (sha256
-         (base32 "0hfdv67l9g611i2ck4l92pd6ygmsp9g1ph4zx1ni7qkpsikf0l19"))))
-      (build-system gnu-build-system)
-      (arguments
-       `(#:tests? #f ; Unclear how to run tests: https://github.com/ekg/fastahack/issues/15
-         #:phases
-         (modify-phases %standard-phases
-           (delete 'configure) ; There is no configure phase.
-           (replace 'install
-             (lambda* (#:key outputs #:allow-other-keys)
-               (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
-                 (install-file "fastahack" bin))
-               #t)))))
-      (home-page "https://github.com/ekg/fastahack")
-      (synopsis "Indexing and sequence extraction from FASTA files")
-      (description "Fastahack is a small application for indexing and
+  (package
+    (name "fastahack")
+    (version "1.0.0")
+    (source (origin
+      (method git-fetch)
+      (uri (git-reference
+            (url "https://github.com/ekg/fastahack/")
+            (commit (string-append "v" version))))
+      (file-name (git-file-name name version))
+      (sha256
+       (base32 "0rp1blskhzxf7vbh253ibpxbgl9wwgyzf1wbkxndi08d3j4vcss9"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f ; Unclear how to run tests: https://github.com/ekg/fastahack/issues/15
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure) ; There is no configure phase.
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
+               (install-file "fastahack" bin))
+             #t)))))
+    (home-page "https://github.com/ekg/fastahack")
+    (synopsis "Indexing and sequence extraction from FASTA files")
+    (description "Fastahack is a small application for indexing and
 extracting sequences and subsequences from FASTA files.  The included library
 provides a FASTA reader and indexer that can be embedded into applications
 which would benefit from directly reading subsequences from FASTA files.  The
 library automatically handles index file generation and use.")
-      (license (list license:expat license:gpl2)))))
+    (license (list license:expat license:gpl2))))
 
 (define-public vcflib
-  (let ((commit "5ac091365fdc716cc47cc5410bb97ee5dc2a2c92")
-        (revision "1"))
-    (package
-      (name "vcflib")
-      (version (git-version "0.0.0" revision commit))
-      (source
-       (origin
-         (method git-fetch)
-         (uri (git-reference
-               (url "https://github.com/vcflib/vcflib/")
-               (commit commit)))
-         (file-name (git-file-name name version))
-         (sha256
-          (base32 "1gijvcz1lcdn5kvgzb671l6iby0379qk00nqmcrszgk67hfwx6kq"))))
-      (build-system gnu-build-system)
-      (inputs
-       `(("zlib" ,zlib)))
-      (native-inputs
-       `(("perl" ,perl)
-         ("python" ,python-2)
-         ;; Submodules.
-         ;; This package builds against the .o files so we need to extract the source.
-         ("tabixpp-src" ,(package-source tabixpp-freebayes))
-         ("smithwaterman-src" ,(package-source smithwaterman))
-         ("multichoose-src" ,(package-source multichoose))
-         ("fsom-src" ,(package-source fsom))
-         ("filevercmp-src" ,(package-source filevercmp))
-         ("fastahack-src" ,(package-source fastahack))
-         ("intervaltree-src"
-          ,(origin
-             (method git-fetch)
-             (uri (git-reference
-                   (url "https://github.com/ekg/intervaltree/")
-                   (commit "dbb4c513d1ad3baac516fc1484c995daf9b42838")))
-             (file-name "intervaltree-src-checkout")
-             (sha256
-              (base32 "1fy5qbj4bg8d2bjysvaa9wfnqn2rj2sk5yra2h4l5pzvy53f23fj"))))))
-      (arguments
-       `(#:tests? #f ; no tests
-         #:phases
-         (modify-phases %standard-phases
-           (delete 'configure)
-           (delete 'check)
-           (add-after 'unpack 'unpack-submodule-sources
-             (lambda* (#:key inputs #:allow-other-keys)
-               (let ((unpack (lambda (source target)
-                               (with-directory-excursion target
-                                 (if (file-is-directory? (assoc-ref inputs source))
-                                     (copy-recursively (assoc-ref inputs source) ".")
-                                     (invoke "tar" "xvf"
-                                             (assoc-ref inputs source)
-                                             "--strip-components=1"))))))
-                 (and
-                  (unpack "intervaltree-src" "intervaltree")
-                  (unpack "fastahack-src" "fastahack")
-                  (unpack "filevercmp-src" "filevercmp")
-                  (unpack "fsom-src" "fsom")
-                  (unpack "multichoose-src" "multichoose")
-                  (unpack "smithwaterman-src" "smithwaterman")
-                  (unpack "tabixpp-src" "tabixpp")))))
-           (replace 'build
-             (lambda* (#:key inputs make-flags #:allow-other-keys)
+  (package
+    (name "vcflib")
+    (version "1.0.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/vcflib/vcflib/releases/"
+                           "download/v" version
+                           "/vcflib-" version "-src.tar.gz"))
+       (sha256
+        (base32 "14zzrg8hg8cq9cvq2wdvp21j7nmxxkjrbagw2apd2yqv2kyx42lm"))
+       (modules '((guix build utils)))
+       (snippet
+        `(begin
+           (for-each delete-file-recursively
+                     '("fastahack" "filevercmp" "fsom" "googletest" "intervaltree"
+                       "libVCFH" "multichoose" "smithwaterman" "tabixpp"))
+           #t))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("htslib" ,htslib)
+       ("perl" ,perl)
+       ("python" ,python)
+       ("zlib" ,zlib)))
+    (native-inputs
+     `(;; Submodules.
+       ;; This package builds against the .o files so we need to extract the source.
+       ("fastahack-src" ,(package-source fastahack))
+       ("filevercmp-src" ,(package-source filevercmp))
+       ("fsom-src" ,(package-source fsom))
+       ("intervaltree-src" ,(package-source intervaltree))
+       ("multichoose-src" ,(package-source multichoose))
+       ("smithwaterman-src" ,(package-source smithwaterman))
+       ("tabixpp-src" ,(package-source tabixpp))))
+    (arguments
+     `(#:tests? #f ; no tests
+       #:make-flags (list (string-append "HTS_LIB="
+                                         (assoc-ref %build-inputs "htslib")
+                                         "/lib/libhts.a")
+                          (string-append "HTS_INCLUDES= -I"
+                                         (assoc-ref %build-inputs "htslib")
+                                         "/include/htslib")
+                          (string-append "HTS_LDFLAGS= -L"
+                                         (assoc-ref %build-inputs "htslib")
+                                         "/include/htslib" " -lhts"))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (delete 'check)
+         (add-after 'unpack 'unpack-submodule-sources
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((unpack (lambda (source target)
+                             (mkdir target)
+                             (with-directory-excursion target
+                               (if (file-is-directory? (assoc-ref inputs source))
+                                   (copy-recursively (assoc-ref inputs source) ".")
+                                   (invoke "tar" "xvf"
+                                           (assoc-ref inputs source)
+                                           "--strip-components=1"))))))
+               (and
+                (unpack "fastahack-src" "fastahack")
+                (unpack "filevercmp-src" "filevercmp")
+                (unpack "fsom-src" "fsom")
+                (unpack "intervaltree-src" "intervaltree")
+                (unpack "multichoose-src" "multichoose")
+                (unpack "smithwaterman-src" "smithwaterman")
+                (unpack "tabixpp-src" "tabixpp")))))
+         (replace 'build
+           (lambda* (#:key inputs make-flags #:allow-other-keys)
+             (let ((htslib (assoc-ref inputs "htslib")))
                (with-directory-excursion "tabixpp"
-                 (invoke "make"))
-               (invoke "make" "CC=gcc"
-                       (string-append "CFLAGS=\"" "-Itabixpp " "\"")
-                       "all")))
-           (replace 'install
-             (lambda* (#:key outputs #:allow-other-keys)
-               (let ((bin (string-append (assoc-ref outputs "out") "/bin"))
-                     (lib (string-append (assoc-ref outputs "out") "/lib")))
-                 (for-each (lambda (file)
-                             (install-file file bin))
-                           (find-files "bin" ".*"))
-                 ;; The header files in src/ do not interface libvcflib,
-                 ;; therefore they are left out.
-                 (install-file "libvcflib.a" lib))
-               #t)))))
-      (home-page "https://github.com/vcflib/vcflib/")
-      (synopsis "Library for parsing and manipulating VCF files")
-      (description "Vcflib provides methods to manipulate and interpret
+                 (substitute* "Makefile"
+                   (("-Ihtslib") (string-append "-I" htslib "/include/htslib"))
+                   (("-Lhtslib") (string-append "-L" htslib "/lib/htslib"))
+                   (("htslib/htslib") (string-append htslib "/include/htslib")))
+                 (invoke "make"
+                         (string-append "HTS_LIB=" htslib "/lib/libhts.a")))
+               (apply invoke "make" "CC=gcc" "CFLAGS=-Itabixpp" make-flags))))
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((bin (string-append (assoc-ref outputs "out") "/bin"))
+                   (lib (string-append (assoc-ref outputs "out") "/lib")))
+               (for-each (lambda (file)
+                           (install-file file bin))
+                         (find-files "bin" ".*"))
+               ;; The header files in src/ do not interface libvcflib,
+               ;; therefore they are left out.
+               (install-file "libvcflib.a" lib))
+             #t)))))
+    (home-page "https://github.com/vcflib/vcflib/")
+    (synopsis "Library for parsing and manipulating VCF files")
+    (description "Vcflib provides methods to manipulate and interpret
 sequence variation as it can be described by VCF.  It is both an API for parsing
 and operating on records of genomic variation as it can be described by the VCF
 format, and a collection of command-line utilities for executing complex
 manipulations on VCF files.")
-      (license license:expat))))
+    (license license:expat)))
 
 (define-public freebayes
   (let ((commit "3ce827d8ebf89bb3bdc097ee0fe7f46f9f30d5fb")
@@ -15162,21 +15409,13 @@ manipulations on VCF files.")
          ("vcflib-src" ,(package-source vcflib))
          ;; These are submodules for the vcflib version used in freebayes.
          ;; This package builds against the .o files so we need to extract the source.
-         ("tabixpp-src" ,(package-source tabixpp-freebayes))
+         ("tabixpp-src" ,(package-source tabixpp))
          ("smithwaterman-src" ,(package-source smithwaterman))
          ("multichoose-src" ,(package-source multichoose))
          ("fsom-src" ,(package-source fsom))
          ("filevercmp-src" ,(package-source filevercmp))
          ("fastahack-src" ,(package-source fastahack))
-         ("intervaltree-src"
-          ,(origin
-             (method git-fetch)
-             (uri (git-reference
-                   (url "https://github.com/ekg/intervaltree/")
-                   (commit "dbb4c513d1ad3baac516fc1484c995daf9b42838")))
-             (file-name "intervaltree-src-checkout")
-             (sha256
-              (base32 "1fy5qbj4bg8d2bjysvaa9wfnqn2rj2sk5yra2h4l5pzvy53f23fj"))))
+         ("intervaltree-src" ,(package-source intervaltree))
          ;; These submodules are needed to run the tests.
          ("bash-tap-src" ,(package-source bash-tap))
          ("test-simple-bash-src"
@@ -15331,7 +15570,7 @@ pairs.")
          ("r-rsamtools" ,r-rsamtools)
          ("r-edger" ,r-edger)
          ("r-igraph" ,r-igraph)))
-      (home-page "http://velocyto.org")
+      (home-page "https://velocyto.org")
       (synopsis "RNA velocity estimation in R")
       (description
        "This package provides basic routines for estimation of gene-specific
@@ -15382,3 +15621,92 @@ methylation metrics from them.  MethylDackel requires an indexed fasta file
 containing the reference genome as well.")
     ;; See https://github.com/dpryan79/MethylDackel/issues/85
     (license license:expat)))
+
+(define-public python-gffutils
+  ;; The latest release is older more than a year than the latest commit
+  (let ((commit "4034c54600813b1402945e12faa91b3a53162cf1")
+        (revision "1"))
+    (package
+      (name "python-gffutils")
+      (version (git-version "0.9" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/daler/gffutils.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1rwafjdnbir5wnk0ap06ww4lra3p5frhy7mfs03rlldgfnwxymsn"))))
+      (build-system python-build-system)
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           (replace 'check
+             (lambda _
+               ;; Tests need to access the HOME directory
+               (setenv "HOME" "/tmp")
+               (invoke "nosetests" "-a" "!slow")))
+           (add-after 'unpack 'make-gz-files-writable
+             (lambda _
+               (for-each make-file-writable
+                         (find-files "." "\\.gz"))
+               #t)))))
+      (propagated-inputs
+       `(("python-argcomplete" ,python-argcomplete)
+         ("python-argh" ,python-argh)
+         ("python-biopython" ,python-biopython)
+         ("python-pybedtools" ,python-pybedtools)
+         ("python-pyfaidx" ,python-pyfaidx)
+         ("python-simplejson" ,python-simplejson)
+         ("python-six" ,python-six)))
+      (native-inputs
+       `(("python-nose" , python-nose)))
+      (home-page "https://github.com/daler/gffutils")
+      (synopsis "Tool for manipulation of GFF and GTF files")
+      (description
+       "python-gffutils is a Python package for working with and manipulating
+the GFF and GTF format files typically used for genomic annotations.  The
+files are loaded into a SQLite database, allowing much more complex
+manipulation of hierarchical features (e.g., genes, transcripts, and exons)
+than is possible with plain-text methods alone.")
+      (license license:expat))))
+
+(define-public libsbml
+  (package
+    (name "libsbml")
+    (version "5.18.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://sourceforge/sbml/libsbml/"
+                                  version "/stable/libSBML-"
+                                  version "-core-src.tar.gz"))
+              (sha256
+               (base32
+                "0slkagrk3nfi2qsksv6b1brj6zhx4bj4bkib2sdycvrcd10ql2lh"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:test-target "test"
+       #:configure-flags
+       (list "-DWITH_CHECK=ON"
+             (string-append "-DLIBXML_LIBRARY="
+                            (assoc-ref %build-inputs "libxml2")
+                            "/lib/libxml2.so")
+             (string-append "-DLIBXML_INCLUDE_DIR="
+                            (assoc-ref %build-inputs "libxml2")
+                            "/include/libxml2"))))
+    (propagated-inputs
+     `(("libxml2" ,libxml2)))
+    (native-inputs
+     `(("check" ,check)
+       ("swig" ,swig)))
+    (home-page "http://sbml.org/Software/libSBML")
+    (synopsis "Process SBML files and data streams")
+    (description "LibSBML is a library to help you read, write, manipulate,
+translate, and validate SBML files and data streams.  The @dfn{Systems Biology
+Markup Language} (SBML) is an interchange format for computer models of
+biological processes.  SBML is useful for models of metabolism, cell
+signaling, and more.  It continues to be evolved and expanded by an
+international community.")
+    (license license:lgpl2.1+)))