guix-devel
[Top][All Lists]
Advanced

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

[PATCH] Add cufflinks.


From: Ricardo Wurmus
Subject: [PATCH] Add cufflinks.
Date: Wed, 16 Sep 2015 17:45:46 +0200

Hi Guix,

attached is a patch to add “cufflinks” to the bioinformatics module.
According to the authors, boost 1.56 broke the serialisation library in
some way, so “cufflinks” must be built against version 1.55.  They
expect this to be fixed in version 1.59 (current is 1.58).  This is why
this patch also adds a local variable “boost-1.55”, which is used by the
“cufflinks” package.

~~ Ricardo

>From e8186326701df11ee4bdb22d4717cf4b8c27dd50 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <address@hidden>
Date: Wed, 16 Sep 2015 17:42:41 +0200
Subject: [PATCH] gnu: Add cufflinks.

* gnu/packages/bioinformatics.scm (boost-1.55, cufflinks): New
  variables.
---
 gnu/packages/bioinformatics.scm | 99 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 99 insertions(+)

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 1f34211..6a6b10f 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -837,6 +837,105 @@ files between different genome assemblies.  It supports 
most commonly used
 file formats including SAM/BAM, Wiggle/BigWig, BED, GFF/GTF, VCF.")
     (license license:gpl2+)))
 
+(define boost-1.55
+  (package (inherit boost)
+    (version "1.55.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "mirror://sourceforge/boost/boost_"
+                    (string-map (lambda (x) (if (eq? x #\.) #\_ x)) version)
+                    ".tar.bz2"))
+              (sha256
+               (base32
+                "0lkv5dzssbl5fmh2nkaszi8x9qbj80pr4acf9i26sj3rvlih1w7z"))))
+    (arguments
+     (substitute-keyword-arguments (package-arguments boost)
+       ((#:phases phases)
+        `(modify-phases ,phases
+           ;; The only difference from the "boost" package in that the "src"
+           ;; directory is called "v2" in this version.
+           (replace 'configure
+            (lambda* (#:key outputs #:allow-other-keys)
+              (let ((out (assoc-ref outputs "out")))
+                (substitute* '("libs/config/configure"
+                               "libs/spirit/classic/phoenix/test/runtest.sh"
+                               "tools/build/v2/doc/bjam.qbk"
+                               "tools/build/v2/engine/execunix.c"
+                               "tools/build/v2/engine/Jambase"
+                               "tools/build/v2/engine/jambase.c")
+                  (("/bin/sh") (which "sh")))
+
+                (setenv "SHELL" (which "sh"))
+                (setenv "CONFIG_SHELL" (which "sh"))
+
+                (zero? (system* "./bootstrap.sh"
+                                (string-append "--prefix=" out)
+                                "--with-toolset=gcc")))))))))))
+
+(define-public cufflinks
+  (package
+    (name "cufflinks")
+    (version "2.2.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://cole-trapnell-lab.github.io/";
+                                  "cufflinks/assets/downloads/cufflinks-"
+                                  version ".tar.gz"))
+              (sha256
+               (base32
+                "1bnm10p8m7zq4qiipjhjqb24csiqdm1pwc8c795z253r2xk6ncg8"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-search-for-bam
+          (lambda _
+            (substitute* '("ax_bam.m4"
+                           "configure"
+                           "src/hits.h")
+              (("<bam/sam\\.h>") "<samtools/sam.h>")
+              (("<bam/bam\\.h>") "<samtools/bam.h>")
+              (("<bam/version\\.hpp>") "<samtools/version.h>"))
+            #t))
+         (add-after 'unpack 'set-CPATH-and-LDFLAGS
+          (lambda* (#:key inputs #:allow-other-keys)
+            ;; The includes for "eigen" are located in a subdirectory.
+            (setenv "CPATH" (string-append (assoc-ref inputs "eigen")
+                                           "/include/eigen3/" ":"
+                                           (or (getenv "CPATH") "")))
+            ;; Cufflinks must be linked with various boost libraries.
+            (setenv "LDFLAGS" (string-join '("-lboost_system"
+                                             "-lboost_serialization"
+                                             "-lboost_thread")
+                                           " "))
+            #t)))
+       #:configure-flags
+       (list (string-append "--with-bam="
+                            (assoc-ref %build-inputs "samtools")))))
+    (inputs
+     `(("eigen" ,eigen)
+       ("samtools" ,samtools-0.1)
+       ("htslib" ,htslib)
+       ;; Due to a serious issue with Boost Serialization library introduced
+       ;; in version 1.56, Cufflinks currently can only be built with Boost
+       ;; version 1.55 or lower. The issue is expected to be fixed in the
+       ;; upcoming Boost v1.59.
+       ("boost-1.55" ,boost-1.55)
+       ("python" ,python-2)
+       ("zlib" ,zlib)))
+    (home-page "http://cole-trapnell-lab.github.io/cufflinks/";)
+    (synopsis "Transcriptome assembly and RNA-Seq expression analysis")
+    (description
+     "Cufflinks assembles transcripts, estimates their abundances, and tests
+for differential expression and regulation in RNA-Seq samples.  It accepts
+aligned RNA-Seq reads and assembles the alignments into a parsimonious set of
+transcripts.  Cufflinks then estimates the relative abundances of these
+transcripts based on how many reads support each one, taking into account
+biases in library preparation protocols.")
+    (license (license:x11-style "http://www.boost.org/LICENSE_1_0.txt";
+                                "Some components have other similar 
licences."))))
+
 (define-public cutadapt
   (package
     (name "cutadapt")
-- 
2.1.0


reply via email to

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