(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")
'(#: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"
(("#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)
(define-public clipper
(package
(name "clipper")
- (version "1.2.1")
+ (version "2.0")
(source (origin
(method git-fetch)
(uri (git-reference
(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
(define-public delly
(package
(name "delly")
- (version "0.7.9")
+ (version "0.8.3")
(source (origin
(method git-fetch)
(uri (git-reference
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "034jqsxswy9gqdh2zkgc1js99qkv75ks4xvzgmh0284sraagv61z"))
+ (base32 "1ibnplgfzj96w8glkx17v7sld3pm402fr5ybmf3h0rlcryabxrqy"))
(modules '((guix build utils)))
(snippet
'(begin
#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
(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
(define-public seqmagick
(package
(name "seqmagick")
- (version "0.7.0")
+ (version "0.8.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "seqmagick" version))
(sha256
(base32
- "12bfyp8nqi0hd36rmj450aygafp01qy3hkbvlwn3bk39pyjjkgg5"))))
+ "0pf98da7i59q47gwrbx0wjk6xlvbybiwphw80w7h4ydjj0579a2b"))))
(build-system python-build-system)
(inputs
`(("python-biopython" ,python-biopython)))
(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)
(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)
(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)
throughput genetic sequencing data sets using regression methods.")
(license license:artistic2.0)))
-(define-public r-qtl
- (package
- (name "r-qtl")
- (version "1.46-2")
- (source
- (origin
- (method url-fetch)
- (uri (string-append "mirror://cran/src/contrib/qtl_"
- version ".tar.gz"))
- (sha256
- (base32
- "0rbwcnvyy96gq1dsgpxx03pv423qya26h6ws5y0blj3blfdmj83a"))))
- (build-system r-build-system)
- (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 estimates genetic maps, to
-identify genotyping errors, and to perform single-QTL and two-QTL,
-two-dimensional genome scans.")
- (license license:gpl3)))
-
-(define-public r-qtl2
- (package
- (name "r-qtl2")
- (version "0.22-11")
- (source (origin
- (method url-fetch)
- (uri (cran-uri "qtl2" version))
- (sha256
- (base32 "0dfdzjylqzc92dcszawc8cyinxccjm3p36v9vcq9ma818pqcanmr"))))
- (build-system r-build-system)
- (propagated-inputs
- `(("r-data-table" ,r-data-table)
- ("r-jsonlite" ,r-jsonlite)
- ("r-rcpp" ,r-rcpp)
- ("r-rcppeigen" ,r-rcppeigen)
- ("r-rsqlite" ,r-rsqlite)
- ("r-yaml" ,r-yaml)))
- (home-page "https://kbroman.org/qtl2/")
- (synopsis "Quantitative Trait Locus Mapping in Experimental Crosses")
- (description
- "This package provides a set of tools to perform @dfn{Quantitative Trait
-Locus} (QTL) analysis in experimental crosses. It is a reimplementation of the
-@code{R/qtl} package to better handle high-dimensional data and complex cross
-designs. Broman et al. (2018) <doi:10.1534/genetics.118.301595>.")
- (license license:gpl3)))
-
(define-public r-zlibbioc
(package
(name "r-zlibbioc")
("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")
unmodeled, or latent sources of noise.")
(license license:artistic2.0)))
-(define-public r-seqminer
- (package
- (name "r-seqminer")
- (version "8.0")
- (source
- (origin
- (method url-fetch)
- (uri (cran-uri "seqminer" version))
- (sha256
- (base32
- "00jzj8mwb0zaiwlifd41b26mrq9mzigj18nc29dydi0r42hxg16i"))))
- (build-system r-build-system)
- (inputs
- `(("zlib" ,zlib)))
- (home-page "http://seqminer.genomic.codes")
- (synopsis "Read nucleotide sequence data (VCF, BCF, and METAL formats)")
- (description
- "This package provides tools to integrate nucleotide sequencing
-data (variant call format, e.g. VCF or BCF) or meta-analysis results in R.")
- ;; Any version of the GPL is acceptable
- (license (list license:gpl2+ license:gpl3+))))
-
(define-public r-raremetals2
(package
(name "r-raremetals2")
(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
("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)
("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")
(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
(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/"
(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)
(for-each delete-file '("configure" "configure.ac"))
;; Do not make other packages link with the proprietary libsz.
(substitute* "R/zzz.R"
- (("'\"%s/libhdf5.a\" \"%s/libsz.a\" -lz'")
- "'\"%s/libhdf5.a\" \"%s/libhdf5.a\" -lz'")
- (("'\"%s/libhdf5_cpp.a\" \"%s/libhdf5.a\" \"%s/libsz.a\" -lz'")
- "'\"%s/libhdf5_cpp.a\" \"%s/libhdf5.a\" \"%s/libhdf5.a\" -lz'")
- (("'%s/libhdf5_hl.a %s/libhdf5.a %s/libsz.a -lz'")
- "'%s/libhdf5_hl.a %s/libhdf5.a %s/libhdf5.a -lz'")
- (("'%s/libhdf5_hl_cpp.a %s/libhdf5_hl.a %s/libhdf5_cpp.a %s/libhdf5.a %s/libsz.a -lz'")
- "'%s/libhdf5_hl_cpp.a %s/libhdf5_hl.a %s/libhdf5_cpp.a %s/libhdf5.a %s/libhdf5.a -lz'"))
+ ((" \"%s/libsz.a\"") ""))
(with-directory-excursion "src"
(invoke "tar" "xvf" (assoc-ref inputs "hdf5-source"))
(rename-file (string-append "hdf5-" ,(package-version hdf5-1.10))
(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
("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/")
(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/"
"/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))
("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)
(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/"
"/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.
("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")
("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)
(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
#: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")
#: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")
"/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"))
(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)
(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")
;; 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")