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