guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

02/02: gnu: Add khmer.


From: Ben Woodcroft
Subject: 02/02: gnu: Add khmer.
Date: Mon, 27 Jun 2016 11:37:02 +0000 (UTC)

benwoodcroft pushed a commit to branch master
in repository guix.

commit 94ff31572d37e9e49813b2e1fddd323cde0103e4
Author: Ben Woodcroft <address@hidden>
Date:   Wed Jun 15 12:21:20 2016 +1000

    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.
---
 gnu/local.mk                                   |    1 +
 gnu/packages/bioinformatics.scm                |   78 ++++++++++++++++++++++++
 gnu/packages/patches/khmer-use-libraries.patch |   16 +++++
 3 files changed, 95 insertions(+)

diff --git a/gnu/local.mk b/gnu/local.mk
index 956be9b..f6aa256 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -593,6 +593,7 @@ dist_patch_DATA =                                           
\
   %D%/packages/patches/jasper-CVE-2016-2089.patch              \
   %D%/packages/patches/jasper-CVE-2016-2116.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/ldc-disable-tests.patch                 \
   %D%/packages/patches/lftp-dont-save-unknown-host-fingerprint.patch \
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 22eba0f..b34e7ba 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")
diff --git a/gnu/packages/patches/khmer-use-libraries.patch 
b/gnu/packages/patches/khmer-use-libraries.patch
new file mode 100644
index 0000000..47d163a
--- /dev/null
+++ b/gnu/packages/patches/khmer-use-libraries.patch
@@ -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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]