gnu: Add khmer.

* gnu/packages/bioinformatics.scm (khmer): New variable.
* gnu/packages/patches/khmer-use-libraries.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
This commit is contained in:
Ben Woodcroft 2016-06-15 12:21:20 +10:00
parent 9ded145717
commit 94ff31572d
No known key found for this signature in database
GPG key ID: E44DCCD146E0CCF4
3 changed files with 95 additions and 0 deletions

View file

@ -593,6 +593,7 @@ dist_patch_DATA = \
%D%/packages/patches/jasper-CVE-2016-2089.patch \ %D%/packages/patches/jasper-CVE-2016-2089.patch \
%D%/packages/patches/jasper-CVE-2016-2116.patch \ %D%/packages/patches/jasper-CVE-2016-2116.patch \
%D%/packages/patches/jbig2dec-ignore-testtest.patch \ %D%/packages/patches/jbig2dec-ignore-testtest.patch \
%D%/packages/patches/khmer-use-libraries.patch \
%D%/packages/patches/kmod-module-directory.patch \ %D%/packages/patches/kmod-module-directory.patch \
%D%/packages/patches/ldc-disable-tests.patch \ %D%/packages/patches/ldc-disable-tests.patch \
%D%/packages/patches/lftp-dont-save-unknown-host-fingerprint.patch \ %D%/packages/patches/lftp-dont-save-unknown-host-fingerprint.patch \

View file

@ -2301,6 +2301,84 @@ (define-public jellyfish
;; files such as lib/jsoncpp.cpp are released under the Expat license. ;; files such as lib/jsoncpp.cpp are released under the Expat license.
(license (list license:gpl3+ license:expat)))) (license (list license:gpl3+ license:expat))))
(define-public khmer
(package
(name "khmer")
(version "2.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "khmer" version))
(sha256
(base32
"0wb05shqh77v00256qlm68vbbx3kl76fyzihszbz5nhanl4ni33a"))
(patches (search-patches "khmer-use-libraries.patch"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'set-paths
(lambda* (#:key inputs outputs #:allow-other-keys)
;; Delete bundled libraries.
(delete-file-recursively "third-party/zlib")
(delete-file-recursively "third-party/bzip2")
;; Replace bundled seqan.
(let* ((seqan-all "third-party/seqan")
(seqan-include (string-append
seqan-all "/core/include")))
(delete-file-recursively seqan-all)
(copy-recursively (string-append (assoc-ref inputs "seqan")
"/include/seqan")
(string-append seqan-include "/seqan")))
;; We do not replace the bundled MurmurHash as the canonical
;; repository for this code 'SMHasher' is unsuitable for
;; providing a library. See
;; https://lists.gnu.org/archive/html/guix-devel/2016-06/msg00977.html
#t))
(add-after 'unpack 'set-cc
(lambda _
(setenv "CC" "gcc")
#t))
;; It is simpler to test after installation.
(delete 'check)
(add-after 'install 'post-install-check
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(setenv "PATH"
(string-append
(getenv "PATH")
":"
(assoc-ref outputs "out")
"/bin"))
(setenv "PYTHONPATH"
(string-append
(getenv "PYTHONPATH")
":"
out
"/lib/python"
(string-take (string-take-right
(assoc-ref inputs "python") 5) 3)
"/site-packages"))
(with-directory-excursion "build"
(zero? (system* "nosetests" "khmer" "--attr"
"!known_failing")))))))))
(native-inputs
`(("seqan" ,seqan)
("python-nose" ,python-nose)))
(inputs
`(("zlib" ,zlib)
("bzip2" ,bzip2)
("python-screed" ,python-screed)
("python-bz2file" ,python-bz2file)))
(home-page "https://khmer.readthedocs.org/")
(synopsis "K-mer counting, filtering and graph traversal library")
(description "The khmer software is a set of command-line tools for
working with DNA shotgun sequencing data from genomes, transcriptomes,
metagenomes and single cells. Khmer can make de novo assemblies faster, and
sometimes better. Khmer can also identify and fix problems with shotgun
data.")
(license license:bsd-3)))
(define-public macs (define-public macs
(package (package
(name "macs") (name "macs")

View file

@ -0,0 +1,16 @@
Change setup.cfg so that the bundled zlib and bzip2 are not used. This cannot
currently be achieved using "--library z,bz2" as instructed in the setup.py.
diff --git a/setup.cfg b/setup.cfg
index c054092..080992e 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -1,7 +1,7 @@
[build_ext]
define = SEQAN_HAS_BZIP2,SEQAN_HAS_ZLIB
undef = NO_UNIQUE_RC
-# libraries = z,bz2
+libraries = z,bz2
## if using system libraries
include-dirs = lib:third-party/zlib:third-party/bzip2:third-party/seqan/core/include:third-party/smhasher
# include-dirs = lib