aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/bioinformatics.scm
diff options
context:
space:
mode:
authorBen Woodcroft <donttrustben@gmail.com>2016-06-15 12:21:20 +1000
committerBen Woodcroft <donttrustben@gmail.com>2016-06-27 21:35:16 +1000
commit94ff31572d37e9e49813b2e1fddd323cde0103e4 (patch)
treedb5b3d2037dc988568be8f8a2ebee0d7797f5c8b /gnu/packages/bioinformatics.scm
parent9ded1457172d38960258c8a2b695ffb0d33ad8c9 (diff)
downloadpatches-94ff31572d37e9e49813b2e1fddd323cde0103e4.tar
patches-94ff31572d37e9e49813b2e1fddd323cde0103e4.tar.gz
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.
Diffstat (limited to 'gnu/packages/bioinformatics.scm')
-rw-r--r--gnu/packages/bioinformatics.scm78
1 files changed, 78 insertions, 0 deletions
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 22eba0f6a3..b34e7ba357 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -2301,6 +2301,84 @@ command, or queried for specific k-mers with @code{jellyfish query}.")
;; files such as lib/jsoncpp.cpp are released under the Expat license.
(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
(package
(name "macs")