diff options
author | Ben Woodcroft <donttrustben@gmail.com> | 2016-06-15 12:21:20 +1000 |
---|---|---|
committer | Ben Woodcroft <donttrustben@gmail.com> | 2016-06-27 21:35:16 +1000 |
commit | 94ff31572d37e9e49813b2e1fddd323cde0103e4 (patch) | |
tree | db5b3d2037dc988568be8f8a2ebee0d7797f5c8b /gnu/packages/bioinformatics.scm | |
parent | 9ded1457172d38960258c8a2b695ffb0d33ad8c9 (diff) | |
download | guix-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.scm | 78 |
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") |