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