summaryrefslogtreecommitdiff
path: root/gnu/packages/bioinformatics.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/bioinformatics.scm')
-rw-r--r--gnu/packages/bioinformatics.scm414
1 files changed, 303 insertions, 111 deletions
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 4145d9e1f2..6f9580e9c3 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -1646,7 +1646,8 @@ gapped, local, and paired-end alignment modes.")
(modify-phases %standard-phases
(delete 'configure))))
(inputs
- `(("tbb" ,tbb)
+ `(("python-wrapper" ,python-wrapper)
+ ("tbb" ,tbb)
("zlib" ,zlib)))
(supported-systems '("x86_64-linux"))
(home-page "http://bowtie-bio.sourceforge.net/index.shtml")
@@ -1683,6 +1684,17 @@ genome (2.9 GB for paired-end).")
'(#:parallel-build? #f ; not supported
#:phases
(modify-phases %standard-phases
+ (add-after 'set-paths 'hide-default-gcc
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((gcc (assoc-ref inputs "gcc")))
+ ;; Remove the default GCC from CPLUS_INCLUDE_PATH to prevent
+ ;; conflicts with the GCC 5 input.
+ (setenv "CPLUS_INCLUDE_PATH"
+ (string-join
+ (delete (string-append gcc "/include/c++")
+ (string-split (getenv "CPLUS_INCLUDE_PATH") #\:))
+ ":"))
+ #t)))
(add-after 'unpack 'use-system-samtools
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "src/Makefile.in"
@@ -1705,7 +1717,7 @@ genome (2.9 GB for paired-end).")
(("#include <sam.h>") "#include <samtools/sam.h>"))
#t)))))
(native-inputs
- `(("gcc" ,gcc-5))) ;; doesn't build with later versions
+ `(("gcc@5" ,gcc-5))) ;; doesn't build with later versions
(inputs
`(("boost" ,boost)
("bowtie" ,bowtie)
@@ -2149,7 +2161,7 @@ databases.")
(define-public clipper
(package
(name "clipper")
- (version "1.2.1")
+ (version "2.0")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -2158,40 +2170,34 @@ databases.")
(file-name (git-file-name name version))
(sha256
(base32
- "0fja1rj84wp9vpj8rxpj3n8zqzcqq454m904yp9as1w4phccirjb"))
- (modules '((guix build utils)))
- (snippet
- '(begin
- ;; remove unnecessary setup dependency
- (substitute* "setup.py"
- (("setup_requires = .*") ""))
- #t))))
+ "1bcag4lb5bkzsj2vg7lrq24aw6yfgq275ifrbhd82l7kqgbbjbkv"))))
(build-system python-build-system)
(arguments
- `(#:python ,python-2 ; only Python 2 is supported
- #:phases
+ `(#:phases
(modify-phases %standard-phases
- ;; This is fixed in upstream commit
- ;; f6c2990198f906bf97730d95695b4bd5a6d01ddb.
- (add-after 'unpack 'fix-typo
- (lambda _
- (substitute* "clipper/src/readsToWiggle.pyx"
- (("^sc.*") ""))
- #t)))))
+ (add-before 'reset-gzip-timestamps 'make-files-writable
+ (lambda* (#:key outputs #:allow-other-keys)
+ ;; Make sure .gz files are writable so that the
+ ;; 'reset-gzip-timestamps' phase can do its work.
+ (let ((out (assoc-ref outputs "out")))
+ (for-each make-file-writable
+ (find-files out "\\.gz$"))
+ #t))))))
(inputs
- `(("htseq" ,python2-htseq)
- ("python-pybedtools" ,python2-pybedtools)
- ("python-cython" ,python2-cython)
- ("python-scikit-learn" ,python2-scikit-learn)
- ("python-matplotlib" ,python2-matplotlib)
- ("python-pandas" ,python2-pandas)
- ("python-pysam" ,python2-pysam)
- ("python-numpy" ,python2-numpy)
- ("python-scipy" ,python2-scipy)))
+ `(("htseq" ,htseq)
+ ("python-pybedtools" ,python-pybedtools)
+ ("python-cython" ,python-cython)
+ ("python-scikit-learn" ,python-scikit-learn)
+ ("python-matplotlib" ,python-matplotlib)
+ ("python-pandas" ,python-pandas)
+ ("python-pysam" ,python-pysam)
+ ("python-numpy" ,python-numpy)
+ ("python-scipy" ,python-scipy)))
(native-inputs
- `(("python-mock" ,python2-mock) ; for tests
- ("python-nose" ,python2-nose) ; for tests
- ("python-pytz" ,python2-pytz))) ; for tests
+ `(("python-setuptools-git" ,python-setuptools-git)
+ ("python-mock" ,python-mock) ; for tests
+ ("python-nose" ,python-nose) ; for tests
+ ("python-pytz" ,python-pytz))) ; for tests
(home-page "https://github.com/YeoLab/clipper")
(synopsis "CLIP peak enrichment recognition")
(description
@@ -2614,7 +2620,7 @@ with Python.")
(define-public delly
(package
(name "delly")
- (version "0.7.9")
+ (version "0.8.3")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -2622,7 +2628,7 @@ with Python.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "034jqsxswy9gqdh2zkgc1js99qkv75ks4xvzgmh0284sraagv61z"))
+ (base32 "1ibnplgfzj96w8glkx17v7sld3pm402fr5ybmf3h0rlcryabxrqy"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -2646,9 +2652,9 @@ with Python.")
#t))))))
(inputs
`(("boost" ,boost)
+ ("bzip2" ,bzip2)
("htslib" ,htslib)
- ("zlib" ,zlib)
- ("bzip2" ,bzip2)))
+ ("zlib" ,zlib)))
(home-page "https://github.com/dellytools/delly")
(synopsis "Integrated structural variant prediction method")
(description "Delly is an integrated structural variant prediction method
@@ -3612,7 +3618,7 @@ particular, reads spanning multiple exons.")
(native-inputs
`(("unzip" ,unzip) ; needed for archive from ftp
("perl" ,perl)
- ("pandoc" ,ghc-pandoc))) ; for documentation
+ ("pandoc" ,pandoc))) ; for documentation
(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
@@ -7505,13 +7511,13 @@ BLAST, KEGG, GenBank, MEDLINE and GO.")
(define-public r-biocviews
(package
(name "r-biocviews")
- (version "1.56.1")
+ (version "1.56.2")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "biocViews" version))
(sha256
(base32
- "0zcx8gha3x3jc0ra6ii6wwq2vfsmffrrnilknbq8h5xjrl55m6ci"))))
+ "0kw0qfm1fw5yv2rbz6x23431rh0fnzj66f2bls7j285biyjmmx7w"))))
(properties
`((upstream-name . "biocViews")))
(build-system r-build-system)
@@ -7894,13 +7900,13 @@ on Bioconductor or which replace R functions.")
(define-public r-annotationdbi
(package
(name "r-annotationdbi")
- (version "1.50.1")
+ (version "1.50.3")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "AnnotationDbi" version))
(sha256
(base32
- "00pd8lsdppxlmx0l65phw0jhsm0qkwjc4wsdxpvgc31iiz9yslbj"))))
+ "0qcxfn4pvaksna0nvxr74ysn2wzaxn732pkhd6ffrj8pwhkhy5p3"))))
(properties
`((upstream-name . "AnnotationDbi")))
(build-system r-build-system)
@@ -8059,13 +8065,13 @@ tab-delimited (tabix) files.")
(define-public r-delayedarray
(package
(name "r-delayedarray")
- (version "0.14.0")
+ (version "0.14.1")
(source (origin
(method url-fetch)
(uri (bioconductor-uri "DelayedArray" version))
(sha256
(base32
- "1lz7a0rrlfv3w44n073mk8pw39z7lfs0njdxp5vpp0rdsmvdf1qk"))))
+ "0xi0i621hrl7k9rsc8x8nc3ib74sk8hxhbyr2lxqclw45pk95s7v"))))
(properties
`((upstream-name . "DelayedArray")))
(build-system r-build-system)
@@ -8699,7 +8705,7 @@ paired-end data.")
("r-rtracklayer" ,r-rtracklayer)
("r-rmarkdown" ,r-rmarkdown)
("r-s4vectors" ,r-s4vectors)
- ("pandoc" ,ghc-pandoc)))
+ ("pandoc" ,pandoc)))
(native-inputs
`(("r-knitr" ,r-knitr)))
(synopsis "RNA-centric annotation system")
@@ -9831,13 +9837,13 @@ and irregular enzymatic cleavages, mass measurement accuracy, etc.")
(define-public r-seurat
(package
(name "r-seurat")
- (version "3.1.5")
+ (version "3.2.0")
(source (origin
(method url-fetch)
(uri (cran-uri "Seurat" version))
(sha256
(base32
- "1lbq2pqhb6ih6iqawlnzdh05zff71pwbw1cpfv2sld3pd7kz0zkm"))))
+ "1vj3dlsqakgnn4x1jz9fkl2cy0jzc5s65h1c20fnamr7lk45pnf2"))))
(properties `((upstream-name . "Seurat")))
(build-system r-build-system)
(propagated-inputs
@@ -9854,11 +9860,13 @@ and irregular enzymatic cleavages, mass measurement accuracy, etc.")
("r-ica" ,r-ica)
("r-igraph" ,r-igraph)
("r-irlba" ,r-irlba)
+ ("r-jsonlite" ,r-jsonlite)
("r-kernsmooth" ,r-kernsmooth)
("r-leiden" ,r-leiden)
("r-lmtest" ,r-lmtest)
("r-mass" ,r-mass)
("r-matrix" ,r-matrix)
+ ("r-miniui" ,r-miniui)
("r-patchwork" ,r-patchwork)
("r-pbapply" ,r-pbapply)
("r-plotly" ,r-plotly)
@@ -9876,7 +9884,9 @@ and irregular enzymatic cleavages, mass measurement accuracy, etc.")
("r-rtsne" ,r-rtsne)
("r-scales" ,r-scales)
("r-sctransform" ,r-sctransform)
- ("r-tsne" ,r-tsne)
+ ("r-shiny" ,r-shiny)
+ ("r-spatstat" ,r-spatstat)
+ ("r-tibble" ,r-tibble)
("r-uwot" ,r-uwot)))
(home-page "http://www.satijalab.org/seurat")
(synopsis "Seurat is an R toolkit for single cell genomics")
@@ -10018,14 +10028,14 @@ Shiny-based display methods for Bioconductor objects.")
(define-public r-annotationhub
(package
(name "r-annotationhub")
- (version "2.20.0")
+ (version "2.20.2")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "AnnotationHub" version))
(sha256
(base32
- "0r4xzf93bm9cpys5cg70wg0b8hxli80hvqwgh4hzbd45yyf5c4wz"))))
+ "04bz91m2wx1zm61rvpr0syyklz232fw74wrl73d965wi3x8fyda5"))))
(properties `((upstream-name . "AnnotationHub")))
(build-system r-build-system)
(propagated-inputs
@@ -10115,17 +10125,18 @@ microarrays or GRanges for sequencing data.")
(define-public r-gage
(package
(name "r-gage")
- (version "2.37.0")
+ (version "2.38.3")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "gage" version))
(sha256
(base32
- "1zfaas4x6g7wiml6cmxa7b4f43az9s0lrw80k6sf7c96hsh1jijr"))))
+ "1bqmvjiya1df0b3h491lp1jxahiyidvaf9n094z0sk84x5y3xh2p"))))
(build-system r-build-system)
(propagated-inputs
`(("r-annotationdbi" ,r-annotationdbi)
+ ("r-go-db" ,r-go-db)
("r-graph" ,r-graph)
("r-keggrest" ,r-keggrest)))
(home-page (string-append "https://bmcbioinformatics.biomedcentral.com/"
@@ -10178,14 +10189,14 @@ provide added flexibility for data combination and manipulation.")
(define-public r-complexheatmap
(package
(name "r-complexheatmap")
- (version "2.4.2")
+ (version "2.4.3")
(source
(origin
(method url-fetch)
(uri (bioconductor-uri "ComplexHeatmap" version))
(sha256
(base32
- "01jxxwxhf9n8baxgja4rb592p5210s4ppd7a5b4xby5aalhzkr0l"))))
+ "1gx0hzrkla92pgmfkrm2zp0ccnhizq6rs26zgzpi5x8a5lvghh5q"))))
(properties
`((upstream-name . "ComplexHeatmap")))
(build-system r-build-system)
@@ -11862,6 +11873,9 @@ straight away. Its main features are:
(snippet
'(begin
(for-each delete-file (find-files "." "\\.exe$"))
+ ;; Some files in the original tarball have restrictive
+ ;; permissions, which makes repackaging fail
+ (for-each (lambda (file) (chmod file #o644)) (find-files "."))
#t))))
(build-system gnu-build-system)
(arguments
@@ -12941,8 +12955,8 @@ once. This package provides tools to perform Drop-seq analyses.")
("r-rtracklayer" ,r-rtracklayer)
("r-rjson" ,r-rjson)
("salmon" ,salmon)
- ("ghc-pandoc" ,ghc-pandoc)
- ("ghc-pandoc-citeproc" ,ghc-pandoc-citeproc)
+ ("pandoc" ,pandoc)
+ ("pandoc-citeproc" ,pandoc-citeproc)
("python-wrapper" ,python-wrapper)
("python-pyyaml" ,python-pyyaml)))
(home-page "https://bioinformatics.mdc-berlin.de/pigx/")
@@ -12958,7 +12972,7 @@ expression report comparing samples in an easily configurable manner.")
(define-public pigx-chipseq
(package
(name "pigx-chipseq")
- (version "0.0.42")
+ (version "0.0.43")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/BIMSBbioinfo/pigx_chipseq/"
@@ -12966,7 +12980,7 @@ expression report comparing samples in an easily configurable manner.")
"/pigx_chipseq-" version ".tar.gz"))
(sha256
(base32
- "0xbvgqpk32a8iczhvac56cacr46rdkqb0allhhpvmj940idf72bi"))))
+ "0426i31b7mqqkbss5dgrvf5prkj4z1qrd7yrpd27vybs01xhdlks"))))
(build-system gnu-build-system)
;; parts of the tests rely on access to the network
(arguments '(#:tests? #f))
@@ -13003,8 +13017,8 @@ expression report comparing samples in an easily configurable manner.")
("macs" ,macs)
("multiqc" ,multiqc)
("perl" ,perl)
- ("ghc-pandoc" ,ghc-pandoc)
- ("ghc-pandoc-citeproc" ,ghc-pandoc-citeproc)
+ ("pandoc" ,pandoc)
+ ("pandoc-citeproc" ,pandoc-citeproc)
("fastqc" ,fastqc)
("bowtie" ,bowtie)
("idr" ,idr)
@@ -13028,7 +13042,7 @@ in an easily configurable manner.")
(define-public pigx-bsseq
(package
(name "pigx-bsseq")
- (version "0.0.10")
+ (version "0.1.2")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/BIMSBbioinfo/pigx_bsseq/"
@@ -13036,10 +13050,13 @@ in an easily configurable manner.")
"/pigx_bsseq-" version ".tar.gz"))
(sha256
(base32
- "0l97wvkq4diq8lcarraj33bby1zzf0w804jwi8mlc5qddp8idwhy"))))
+ "0mpzlay2d5cjpmrcp7knff6rg1c2mqszd638n7lw0mc0cycbp9f8"))))
(build-system gnu-build-system)
(arguments
- `(#:phases
+ `(;; TODO: tests currently require 12+GB of RAM. See
+ ;; https://github.com/BIMSBbioinfo/pigx_bsseq/issues/164
+ #:tests? #f
+ #:phases
(modify-phases %standard-phases
(add-before 'check 'set-timezone
;; The readr package is picky about timezones.
@@ -13059,22 +13076,27 @@ in an easily configurable manner.")
("r-annotationhub" ,r-annotationhub)
("r-dt" ,r-dt)
("r-genomation" ,r-genomation)
+ ("r-ggrepel" ,r-ggrepel)
("r-methylkit" ,r-methylkit)
("r-rtracklayer" ,r-rtracklayer)
("r-rmarkdown" ,r-rmarkdown)
("r-bookdown" ,r-bookdown)
("r-ggplot2" ,r-ggplot2)
("r-ggbio" ,r-ggbio)
- ("ghc-pandoc" ,ghc-pandoc)
- ("ghc-pandoc-citeproc" ,ghc-pandoc-citeproc)
+ ("pandoc" ,pandoc)
+ ("pandoc-citeproc" ,pandoc-citeproc)
("python-wrapper" ,python-wrapper)
("python-pyyaml" ,python-pyyaml)
("snakemake" ,snakemake)
("bismark" ,bismark)
- ("fastqc" ,fastqc)
("bowtie" ,bowtie)
+ ("bwa-meth" ,bwa-meth)
+ ("fastqc" ,fastqc)
+ ("methyldackel" ,methyldackel)
+ ("multiqc" ,multiqc)
("trim-galore" ,trim-galore)
("cutadapt" ,cutadapt)
+ ("samblaster" ,samblaster)
("samtools" ,samtools)))
(home-page "https://bioinformatics.mdc-berlin.de/pigx/")
(synopsis "Bisulfite sequencing pipeline from fastq to methylation reports")
@@ -13110,8 +13132,8 @@ methylation and segmentation.")
("python-magic" ,python-magic)
("python-numpy" ,python-numpy)
("python-loompy" ,python-loompy)
- ("ghc-pandoc" ,ghc-pandoc)
- ("ghc-pandoc-citeproc" ,ghc-pandoc-citeproc)
+ ("pandoc" ,pandoc)
+ ("pandoc-citeproc" ,pandoc-citeproc)
("samtools" ,samtools)
("snakemake" ,snakemake)
("star" ,star)
@@ -15378,12 +15400,34 @@ mutations from scRNA-Seq data.")
(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")))))
+ (string-append "LIBPATH=-L. -L" htslib-ref "/include"))
+ (invoke "g++" "-shared" "-o" "libtabixpp.so" "tabix.o" "-lhts")
+ (invoke "ar" "rcs" "libtabixpp.a" "tabix.o"))))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
- (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
- (install-file "tabix++" bin))
- #t)))))
+ (let* ((out (assoc-ref outputs "out"))
+ (lib (string-append out "/lib"))
+ (bin (string-append out "/bin")))
+ (install-file "tabix++" bin)
+ (install-file "libtabixpp.so" lib)
+ (install-file "libtabixpp.a" lib)
+ (install-file "tabix.hpp" (string-append out "/include"))
+ (mkdir-p (string-append lib "/pkgconfig"))
+ (with-output-to-file (string-append lib "/pkgconfig/tabixpp.pc")
+ (lambda _
+ (format #t "prefix=~a~@
+ exec_prefix=${prefix}~@
+ libdir=${exec_prefix}/lib~@
+ includedir=${prefix}/include~@
+ ~@
+ ~@
+ Name: libtabixpp~@
+ Version: ~a~@
+ Description: C++ wrapper around tabix project~@
+ Libs: -L${libdir} -ltabixpp~@
+ Cflags: -I${includedir}~%"
+ out ,version)))
+ #t))))))
(home-page "https://github.com/ekg/tabixpp")
(synopsis "C++ wrapper around tabix project")
(description "This is a C++ wrapper around the Tabix project which abstracts
@@ -15410,13 +15454,45 @@ some of the details of opening and jumping in tabix-indexed files.")
#:phases
(modify-phases %standard-phases
(delete 'configure) ; There is no configure phase.
+ (add-after 'unpack 'patch-source
+ (lambda _
+ (substitute* "Makefile"
+ (("-c ") "-c -fPIC "))
+ #t))
+ (add-after 'build 'build-dynamic
+ (lambda _
+ (invoke "g++"
+ "-shared" "-o" "libsmithwaterman.so"
+ "smithwaterman.o" "SmithWatermanGotoh.o"
+ "disorder.o" "BandedSmithWaterman.o"
+ "LeftAlign.o" "Repeats.o" "IndelAllele.o")))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(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))
+ (for-each
+ (lambda (file)
+ (install-file file (string-append out "/include/smithwaterman")))
+ (find-files "." "\\.h$"))
+ (install-file "libsmithwaterman.so" lib)
+ (install-file "libsw.a" lib)
+ (mkdir-p (string-append lib "/pkgconfig"))
+ (with-output-to-file (string-append lib "/pkgconfig/smithwaterman.pc")
+ (lambda _
+ (format #t "prefix=~a~@
+ exec_prefix=${prefix}~@
+ libdir=${exec_prefix}/lib~@
+ includedir=${prefix}/include/smithwaterman~@
+ ~@
+ ~@
+ Name: smithwaterman~@
+ Version: ~a~@
+ Description: smith-waterman-gotoh alignment algorithm~@
+ Libs: -L${libdir} -lsmithwaterman~@
+ Cflags: -I${includedir}~%"
+ out ,version))))
#t)))))
(home-page "https://github.com/ekg/smithwaterman")
(synopsis "Implementation of the Smith-Waterman algorithm")
@@ -15506,10 +15582,43 @@ neural networks.")
#:phases
(modify-phases %standard-phases
(delete 'configure) ; There is no configure phase.
+ (add-after 'unpack 'patch-source
+ (lambda _
+ (substitute* "Makefile"
+ (("-c ") "-c -fPIC "))
+ #t))
+ (add-after 'build 'build-dynamic
+ (lambda _
+ (invoke "g++"
+ "-shared" "-o" "libfastahack.so"
+ "Fasta.o" "FastaHack.o" "split.o" "disorder.o")))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
- (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
- (install-file "fastahack" bin))
+ (let* ((out (assoc-ref outputs "out"))
+ (lib (string-append out "/lib"))
+ (bin (string-append out "/bin")))
+ (mkdir-p (string-append out "/include/fastahack"))
+ (for-each
+ (lambda (file)
+ (install-file file (string-append out "/include/fastahack")))
+ (find-files "." "\\.h$"))
+ (install-file "fastahack" bin)
+ (install-file "libfastahack.so" lib)
+ (mkdir-p (string-append lib "/pkgconfig"))
+ (with-output-to-file (string-append lib "/pkgconfig/fastahack.pc")
+ (lambda _
+ (format #t "prefix=~a~@
+ exec_prefix=${prefix}~@
+ libdir=${exec_prefix}/lib~@
+ includedir=${prefix}/include/fastahack~@
+ ~@
+ ~@
+ Name: fastahack~@
+ Version: ~a~@
+ Description: Indexing and sequence extraction from FASTA files~@
+ Libs: -L${libdir} -lfastahack~@
+ Cflags: -I${includedir}~%"
+ out ,version))))
#t)))))
(home-page "https://github.com/ekg/fastahack")
(synopsis "Indexing and sequence extraction from FASTA files")
@@ -15532,9 +15641,16 @@ library automatically handles index file generation and use.")
"/vcflib-" version "-src.tar.gz"))
(sha256
(base32 "14zzrg8hg8cq9cvq2wdvp21j7nmxxkjrbagw2apd2yqv2kyx42lm"))
+ (patches (search-patches "vcflib-use-shared-libraries.patch"))
(modules '((guix build utils)))
(snippet
`(begin
+ (substitute* (find-files "." "\\.(h|c)(pp)?$")
+ (("\"SmithWatermanGotoh.h\"") "<smithwaterman/SmithWatermanGotoh.h>")
+ (("\"convert.h\"") "<smithwaterman/convert.h>")
+ (("\"disorder.h\"") "<smithwaterman/disorder.h>")
+ (("\"tabix.hpp\"") "<tabix.hpp>")
+ (("\"Fasta.h\"") "<fastahack/Fasta.h>"))
(for-each delete-file-recursively
'("fastahack" "filevercmp" "fsom" "googletest" "intervaltree"
"libVCFH" "multichoose" "smithwaterman" "tabixpp"))
@@ -15542,34 +15658,34 @@ library automatically handles index file generation and use.")
(build-system gnu-build-system)
(inputs
`(("htslib" ,htslib)
+ ("fastahack" ,fastahack)
("perl" ,perl)
("python" ,python)
+ ("smithwaterman" ,smithwaterman)
+ ("tabixpp" ,tabixpp)
+ ("xz" ,xz)
("zlib" ,zlib)))
(native-inputs
- `(;; Submodules.
+ `(("pkg-config" ,pkg-config)
+ ;; 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))))
+ ("multichoose-src" ,(package-source multichoose))))
(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
+ (add-after 'unpack 'set-flags
+ (lambda* (#:key outputs #:allow-other-keys)
+ (substitute* "Makefile"
+ (("LDFLAGS =")
+ (string-append "LDFLAGS = -Wl,-rpath="
+ (assoc-ref outputs "out") "/lib ")))
+ (substitute* "filevercmp/Makefile"
+ (("-c") "-c -fPIC"))
+ #t))
(delete 'configure)
- (delete 'check)
(add-after 'unpack 'unpack-submodule-sources
(lambda* (#:key inputs #:allow-other-keys)
(let ((unpack (lambda (source target)
@@ -15581,34 +15697,39 @@ library automatically handles index file generation and use.")
(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"
- (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))))
+ (unpack "multichoose-src" "multichoose")))))
(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")))
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin"))
+ (lib (string-append 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))
+ (install-file "libvcflib.so" lib)
+ (install-file "libvcflib.a" lib)
+ (for-each
+ (lambda (file)
+ (install-file file (string-append out "/include")))
+ (find-files "include" "\\.h(pp)?$"))
+ (mkdir-p (string-append lib "/pkgconfig"))
+ (with-output-to-file (string-append lib "/pkgconfig/vcflib.pc")
+ (lambda _
+ (format #t "prefix=~a~@
+ exec_prefix=${prefix}~@
+ libdir=${exec_prefix}/lib~@
+ includedir=${prefix}/include~@
+ ~@
+ ~@
+ Name: libvcflib~@
+ Version: ~a~@
+ Requires: smithwaterman, fastahack~@
+ Description: C++ library for parsing and manipulating VCF files~@
+ Libs: -L${libdir} -lvcflib~@
+ Cflags: -I${includedir}~%"
+ out ,version))))
#t)))))
(home-page "https://github.com/vcflib/vcflib/")
(synopsis "Library for parsing and manipulating VCF files")
@@ -15862,6 +15983,77 @@ containing the reference genome as well.")
;; See https://github.com/dpryan79/MethylDackel/issues/85
(license license:expat)))
+;; This package bundles PCRE 8.02 and cannot be built with the current
+;; version.
+(define-public phast
+ (package
+ (name "phast")
+ (version "1.5")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/CshlSiepelLab/phast")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "10lpbllvny923jjbbyrpxahhd1m5h7sbj9gx7rd123rg10mlidki"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:make-flags
+ (list "CC=gcc"
+ (string-append "DESTDIR=" (assoc-ref %outputs "out")))
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'configure
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ ;; Fix syntax
+ (substitute* "test/Makefile"
+ ((" ") " "))
+ (substitute* "Makefile"
+ (("CLAPACKPATH=/usr/lib")
+ (string-append "CLAPACKPATH="
+ (assoc-ref inputs "clapack") "/lib")))
+ ;; Renaming the libraries is not necessary with our version of
+ ;; CLAPACK.
+ (substitute* "src/lib/Makefile"
+ (("ifdef CLAPACKPATH") "ifdef UNNECESSARY"))
+ (substitute* "src/make-include.mk"
+ (("-lblaswr") "-lblas")
+ (("-ltmg") "-ltmglib")
+ (("liblapack.a") "liblapack.so")
+ (("libblas.a") "libblas.so")
+ (("libf2c.a") "libf2c.so"))
+ (substitute* "src/Makefile"
+ (("/opt") "/share")
+ (("/usr/") "/"))
+ #t))
+ (replace 'check
+ (lambda _
+ (setenv "PATH"
+ (string-append (getcwd) "/bin:" (getenv "PATH")))
+ ;; Disable broken test
+ (substitute* "test/Makefile"
+ ((".*if.*hmrc_summary" m) (string-append "#" m)))
+ ;; Only run the msa_view tests because the others fail for
+ ;; unknown reasons.
+ (invoke "make" "-C" "test" "msa_view"))))))
+ (inputs
+ `(("clapack" ,clapack)))
+ (native-inputs
+ `(("perl" ,perl)))
+ (home-page "http://compgen.cshl.edu/phast/")
+ (synopsis "Phylogenetic analysis with space/time models")
+ (description
+ "Phylogenetic Analysis with Space/Time models (PHAST) is a collection of
+command-line programs and supporting libraries for comparative and
+evolutionary genomics. Best known as the search engine behind the
+Conservation tracks in the University of California, Santa Cruz (UCSC) Genome
+Browser, PHAST also includes several tools for phylogenetic modeling,
+functional element identification, as well as utilities for manipulating
+alignments, trees and genomic annotations.")
+ (license license:bsd-3)))
+
(define-public python-gffutils
;; The latest release is older more than a year than the latest commit
(let ((commit "4034c54600813b1402945e12faa91b3a53162cf1")