~ruther/guix-local

56e373ef75d161325d4878f8cfaafffa7dba24a5 — Ricardo Wurmus 10 years ago 5bdda30
gnu: Add preseq.

* gnu/packages/bioinformatics.scm (preseq): New variable.
* gnu/packages/patches/preseq-1.0.2-install-to-PREFIX.patch: New file.
* gnu/packages/patches/preseq-1.0.2-link-with-libbam.patch: New file.
* gnu-system.am (dist_patch_DATA): Add them.
M gnu-system.am => gnu-system.am +2 -0
@@ 571,6 571,8 @@ dist_patch_DATA =						\
  gnu/packages/patches/plotutils-libpng-jmpbuf.patch		\
  gnu/packages/patches/polkit-drop-test.patch			\
  gnu/packages/patches/portaudio-audacity-compat.patch		\
  gnu/packages/patches/preseq-1.0.2-install-to-PREFIX.patch	\
  gnu/packages/patches/preseq-1.0.2-link-with-libbam.patch	\
  gnu/packages/patches/procps-make-3.82.patch			\
  gnu/packages/patches/pt-scotch-build-parallelism.patch	\
  gnu/packages/patches/pulseaudio-fix-mult-test.patch		\

M gnu/packages/bioinformatics.scm => gnu/packages/bioinformatics.scm +56 -0
@@ 2087,6 2087,62 @@ subsequent visualization, annotation and storage of results.")
    ;; LGPLv2.1+
    (license (list license:gpl2 license:lgpl2.1+))))

(define-public preseq
  (package
    (name "preseq")
    (version "1.0.2")
    (source (origin
              (method url-fetch)
              (uri
               (string-append "http://smithlabresearch.org/downloads/preseq-"
                              version ".tar.bz2"))
              (sha256
               (base32 "0r7sw07p6nv8ygvc17gd78lisbw5336v3vhs86b5wv8mw3pwqksc"))
              (patches (list (search-patch "preseq-1.0.2-install-to-PREFIX.patch")
                             (search-patch "preseq-1.0.2-link-with-libbam.patch")))
              (modules '((guix build utils)))
              (snippet
               ;; Remove bundled samtools.
               '(delete-file-recursively "preseq-master/samtools"))))
    (build-system gnu-build-system)
    (arguments
     `(#:tests? #f ;no "check" target
       #:phases
       (modify-phases %standard-phases
         (add-after
          'unpack 'enter-dir
          (lambda _
            (chdir "preseq-master")
            #t))
         (add-after
          'unpack 'use-samtools-headers
          (lambda _
            (substitute* '("smithlab_cpp/SAM.cpp"
                           "smithlab_cpp/SAM.hpp")
              (("sam.h") "samtools/sam.h"))
            #t))
         (delete 'configure))
       #:make-flags (list (string-append "PREFIX="
                                         (assoc-ref %outputs "out"))
                          (string-append "LIBBAM="
                                         (assoc-ref %build-inputs "samtools")
                                         "/lib/libbam.a"))))
    (inputs
     `(("gsl" ,gsl)
       ("samtools" ,samtools-0.1)
       ("zlib" ,zlib)))
    (home-page "http://smithlabresearch.org/software/preseq/")
    (synopsis "Program for analyzing library complexity")
    (description
     "The preseq package is aimed at predicting and estimating the complexity
of a genomic sequencing library, equivalent to predicting and estimating the
number of redundant reads from a given sequencing depth and how many will be
expected from additional sequencing using an initial sequencing experiment.
The estimates can then be used to examine the utility of further sequencing,
optimize the sequencing depth, or to screen multiple libraries to avoid low
complexity samples.")
    (license license:gpl3+)))

(define-public sra-tools
  (package
    (name "sra-tools")

A gnu/packages/patches/preseq-1.0.2-install-to-PREFIX.patch => gnu/packages/patches/preseq-1.0.2-install-to-PREFIX.patch +37 -0
@@ 0,0 1,37 @@
This patch has been submitted upstream: https://github.com/smithlabcode/preseq/pull/15

From 65387b0d766e6c06a15cf8d8f9183d9a4ba644bb Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <ricardo.wurmus@mdc-berlin.de>
Date: Thu, 25 Jun 2015 15:01:53 +0200
Subject: [PATCH] Install to PREFIX

---
 Makefile | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/Makefile b/Makefile
index 4d0367a..e334f2f 100644
--- a/preseq-master/Makefile
+++ b/preseq-master/Makefile
@@ -22,6 +22,10 @@ ifndef ROOT
 ROOT = $(shell pwd)
 endif
 
+ifndef PREFIX
+PREFIX = $(ROOT)
+endif
+
 ifndef SMITHLAB_CPP
 SMITHLAB_CPP=$(ROOT)/smithlab_cpp/
 endif
@@ -91,8 +95,8 @@ endif
 	$(CXX) $(CXXFLAGS) -o $@ $^ $(INCLUDEARGS) $(LIBS)
 
 install: $(PROGS)
-	@mkdir -p $(ROOT)/bin
-	@install -m 755 $(PROGS) $(ROOT)/bin
+	@mkdir -p $(PREFIX)/bin
+	@install -m 755 $(PROGS) $(PREFIX)/bin
 
 clean:
 	@-rm -f $(PROGS) *.o *~

A gnu/packages/patches/preseq-1.0.2-link-with-libbam.patch => gnu/packages/patches/preseq-1.0.2-link-with-libbam.patch +33 -0
@@ 0,0 1,33 @@
This patch has been submitted upstream: https://github.com/smithlabcode/preseq/pull/15

From a937a54d56e8a6ff06237471e568154d1fa5f267 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <ricardo.wurmus@mdc-berlin.de>
Date: Thu, 25 Jun 2015 15:02:35 +0200
Subject: [PATCH] Link with libbam.a if provided via LIBBAM

---
 Makefile | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/Makefile b/Makefile
index e334f2f..de310e4 100644
--- a/preseq-master/Makefile
+++ b/preseq-master/Makefile
@@ -83,10 +83,17 @@ $(PROGS): $(addprefix $(SMITHLAB_CPP)/, \
 preseq: continued_fraction.o load_data_for_complexity.o moment_sequence.o
 
 ifdef SAMTOOLS_DIR
+ifdef LIBBAM
+LIBS += -pthread
+bam2mr preseq: $(addprefix $(SMITHLAB_CPP)/, SAM.o) \
+        $(LIBBAM)
+else
 bam2mr preseq: $(addprefix $(SMITHLAB_CPP)/, SAM.o) \
         $(addprefix $(SAMTOOLS_DIR)/, sam.o bam.o bam_import.o bam_pileup.o \
         faidx.o bam_aux.o kstring.o knetfile.o sam_header.o razf.o bgzf.o)
 endif
+endif # SAMTOOLS_DIR
+
 
 %.o: %.cpp %.hpp
 	$(CXX) $(CXXFLAGS) -c -o $@ $< $(INCLUDEARGS)