From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ricardo Wurmus Subject: [PATCH] Add cufflinks. Date: Wed, 16 Sep 2015 17:45:46 +0200 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:40646) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZcEuG-0002yB-BU for guix-devel@gnu.org; Wed, 16 Sep 2015 11:46:01 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZcEuD-0006VC-3W for guix-devel@gnu.org; Wed, 16 Sep 2015 11:46:00 -0400 Received: from pegasus.bbbm.mdc-berlin.de ([141.80.25.20]:59482) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZcEuC-0006Tj-M7 for guix-devel@gnu.org; Wed, 16 Sep 2015 11:45:57 -0400 Received: from localhost (localhost [127.0.0.1]) by pegasus.bbbm.mdc-berlin.de (Postfix) with ESMTP id 62FDC380DB3 for ; Wed, 16 Sep 2015 17:45:54 +0200 (CEST) Received: from pegasus.bbbm.mdc-berlin.de ([127.0.0.1]) by localhost (pegasus.bbbm.mdc-berlin.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id PQUfa660TJfO for ; Wed, 16 Sep 2015 17:45:48 +0200 (CEST) Received: from HTCAONE.mdc-berlin.net (mab.citx.mdc-berlin.de [141.80.36.102]) by pegasus.bbbm.mdc-berlin.de (Postfix) with ESMTP for ; Wed, 16 Sep 2015 17:45:48 +0200 (CEST) List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: guix-devel --=-=-= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Hi Guix, attached is a patch to add =E2=80=9Ccufflinks=E2=80=9D to the bioinformat= ics module. According to the authors, boost 1.56 broke the serialisation library in some way, so =E2=80=9Ccufflinks=E2=80=9D 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 =E2=80=9Cboost-1.55=E2=80=9D, which= is used by the =E2=80=9Ccufflinks=E2=80=9D package. ~~ Ricardo --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename="0001-gnu-Add-cufflinks.patch" >From e8186326701df11ee4bdb22d4717cf4b8c27dd50 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus 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") + (("") "") + (("") "") + (("") "")) + #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 --=-=-=--