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:
		
							parent
							
								
									9ded145717
								
							
						
					
					
						commit
						94ff31572d
					
				
					 3 changed files with 95 additions and 0 deletions
				
			
		| 
						 | 
					@ -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 \
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -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.
 | 
					    ;; 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")
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										16
									
								
								gnu/packages/patches/khmer-use-libraries.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								gnu/packages/patches/khmer-use-libraries.patch
									
										
									
									
									
										Normal 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
 | 
				
			||||||
		Reference in a new issue