From patchwork Sat May 18 17:26:40 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pierre Neidhardt X-Patchwork-Id: 14001 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 33AA817027; Sat, 18 May 2019 18:27:18 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTP id 676781701E for ; Sat, 18 May 2019 18:27:17 +0100 (BST) Received: from localhost ([127.0.0.1]:36692 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hS376-0004PS-SO for patchwork@mira.cbaines.net; Sat, 18 May 2019 13:27:16 -0400 Received: from eggs.gnu.org ([209.51.188.92]:48601) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hS36w-0004GX-Qw for guix-patches@gnu.org; Sat, 18 May 2019 13:27:08 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hS36v-0001NO-5i for guix-patches@gnu.org; Sat, 18 May 2019 13:27:06 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:47625) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hS36v-0001NG-1j for guix-patches@gnu.org; Sat, 18 May 2019 13:27:05 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1hS36u-0007uk-UL for guix-patches@gnu.org; Sat, 18 May 2019 13:27:04 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#35792] [PATCH 7/7] gnu: Add freebayes. Resent-From: Pierre Neidhardt Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sat, 18 May 2019 17:27:04 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 35792 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 35792@debbugs.gnu.org X-Debbugs-Original-To: guix-patches@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.155820042030370 (code B ref -1); Sat, 18 May 2019 17:27:04 +0000 Received: (at submit) by debbugs.gnu.org; 18 May 2019 17:27:00 +0000 Received: from localhost ([127.0.0.1]:32930 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hS36q-0007th-68 for submit@debbugs.gnu.org; Sat, 18 May 2019 13:27:00 -0400 Received: from eggs.gnu.org ([209.51.188.92]:34114) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hS36k-0007sF-Mm for submit@debbugs.gnu.org; Sat, 18 May 2019 13:26:55 -0400 Received: from lists.gnu.org ([209.51.188.17]:49448) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hS36e-0001Bb-AH for submit@debbugs.gnu.org; Sat, 18 May 2019 13:26:48 -0400 Received: from eggs.gnu.org ([209.51.188.92]:48469) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hS36c-0004DQ-Gt for guix-patches@gnu.org; Sat, 18 May 2019 13:26:48 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hS36Z-00017t-P3 for guix-patches@gnu.org; Sat, 18 May 2019 13:26:46 -0400 Received: from relay1-d.mail.gandi.net ([217.70.183.193]:43661) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hS36Z-00016C-6A for guix-patches@gnu.org; Sat, 18 May 2019 13:26:43 -0400 X-Originating-IP: 92.169.116.19 Received: from localhost.localdomain (lfbn-1-4117-19.w92-169.abo.wanadoo.fr [92.169.116.19]) (Authenticated sender: mail@ambrevar.xyz) by relay1-d.mail.gandi.net (Postfix) with ESMTPSA id F2E6F240014 for ; Sat, 18 May 2019 17:26:41 +0000 (UTC) From: Pierre Neidhardt Date: Sat, 18 May 2019 19:26:40 +0200 Message-Id: <20190518172640.7165-7-mail@ambrevar.xyz> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190518172640.7165-1-mail@ambrevar.xyz> References: <20190518172543.6766-1-mail@ambrevar.xyz> <20190518172640.7165-1-mail@ambrevar.xyz> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.51.188.43 X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" X-getmail-retrieved-from-mailbox: Patches * gnu/packages/bioinformatics.scm (freebayes): New variable. --- gnu/packages/bioinformatics.scm | 127 ++++++++++++++++++++++++++++++++ 1 file changed, 127 insertions(+) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 665c807de9..704db184eb 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -15103,3 +15103,130 @@ and operating on records of genomic variation as it can be described by the VCF format, and a collection of command-line utilities for executing complex manipulations on VCF files.") (license license:expat)))) + +(define-public freebayes + (let ((commit "3ce827d8ebf89bb3bdc097ee0fe7f46f9f30d5fb") + (revision "1") + (version "1.0.2")) + (package + (name "freebayes") + (version (git-version version revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ekg/freebayes.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1sbzwmcbn78ybymjnhwk7qc5r912azy5vqz2y7y81616yc3ba2a2")))) + (build-system gnu-build-system) + (inputs + `(("zlib" ,zlib) + ("htslib" ,htslib))) + (native-inputs + `(("bc" ,bc) ; Needed for running tests. + ("samtools" ,samtools) ; Needed for running tests. + ("parallel" ,parallel) ; Needed for running tests. + ("procps" ,procps) ; Needed for running tests. + ("bamtools" ,bamtools) + ("bamtools" ,bamtools) + ("vcflib-src" ,(package-source vcflib)) + ;; These are submodules for the vcflib version used in freebayes. + ;; This package builds against the .o files so we need to extract the source. + ("tabixpp-src" ,(package-source tabixpp-freebayes)) + ("smithwaterman-src" ,(package-source smithwaterman)) + ("multichoose-src" ,(package-source multichoose)) + ("fsom-src" ,(package-source fsom)) + ("filevercmp-src" ,(package-source filevercmp)) + ("fastahack-src" ,(package-source fastahack)) + ("intervaltree-src" + ,(origin + (method url-fetch) + (uri (string-append + "https://github.com/ekg/intervaltree/archive/" + "dbb4c513d1ad3baac516fc1484c995daf9b42838" ".tar.gz")) + (file-name "intervaltree-src.tar.gz") + (sha256 + (base32 "19prwpn2wxsrijp5svfqvfcxl5nj7zdhm3jycd5kqhl9nifpmcks")))) + ;; These submodules are needed to run the tests. + ("bash-tap-src" ,(package-source bash-tap)) + ("test-simple-bash-src" + ,(origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ingydotnet/test-simple-bash/") + (commit "124673ff204b01c8e96b7fc9f9b32ee35d898acc"))) + (file-name "test-simple-bash-src.tar.gz") + (sha256 + (base32 "043plp6z0x9yf7mdpky1fw7zcpwn1p47px95w9mh16603zqqqpga")))))) + (arguments + `(#:tests? #f ; TODO: Re-enable when we have grep with perl support. + #:phases + (modify-phases %standard-phases + (delete 'configure) + (add-after 'unpack 'unpack-submodule-sources + (lambda* (#:key inputs #:allow-other-keys) + (let ((unpack (lambda (source target) + (with-directory-excursion target + (if (file-is-directory? (assoc-ref inputs source)) + (copy-recursively (assoc-ref inputs source) ".") + (invoke "tar" "xvf" + (assoc-ref inputs source) + "--strip-components=1")))))) + (and + (unpack "vcflib-src" "vcflib") + (unpack "fastahack-src" "vcflib/fastahack") + (unpack "filevercmp-src" "vcflib/filevercmp") + (unpack "fsom-src" "vcflib/fsom") + (unpack "intervaltree-src" "vcflib/intervaltree") + (unpack "multichoose-src" "vcflib/multichoose") + (unpack "smithwaterman-src" "vcflib/smithwaterman") + (unpack "tabixpp-src" "vcflib/tabixpp") + (unpack "test-simple-bash-src" "test/test-simple-bash") + (unpack "bash-tap-src" "test/bash-tap"))))) + (add-after 'unpack-submodule-sources 'fix-makefile + (lambda* (#:key inputs #:allow-other-keys) + ;; We don't have the .git folder to get the version tag from. + (substitute* '("vcflib/Makefile") + (("^GIT_VERSION.*") (string-append "GIT_VERSION = v" ,version))))) + (replace 'build + (lambda* (#:key inputs make-flags #:allow-other-keys) + (with-directory-excursion "vcflib" + (with-directory-excursion "tabixpp" + (pk "Compile tabixpp before compiling the main project.") + (let ((htslib-ref (assoc-ref inputs "htslib"))) + (invoke "make" "HTS_HEADERS=" + (string-append "HTS_LIB=" htslib-ref "/lib/libhts.a") + (string-append "LIBPATH=-L. -L" htslib-ref "/include")))) + (pk "Compile vcflib before compiling the main project.") + (invoke "make" "CC=gcc" + (string-append "CFLAGS=\"" "-Itabixpp " + "-I" (assoc-ref inputs "htslib") "/include " "\"") + "all")) + (pk "Compile the main project.") + (with-directory-excursion "src" + (substitute* "Makefile" + (("-I\\$\\(BAMTOOLS_ROOT\\)/src") "-I$(BAMTOOLS_ROOT)/include/bamtools")) + (invoke "make" + (string-append "BAMTOOLS_ROOT=" + (assoc-ref inputs "bamtools")))))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((bin (string-append (assoc-ref outputs "out") "/bin"))) + (install-file "bin/freebayes" bin) + (install-file "bin/bamleftalign" bin)))) + ;; TODO: There are three tests that fail. All because of the -P + ;; (--perl-regexp) option in grep, which is not compiled into the + ;; version of grep in Guix. + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "make" "test"))))))) + (home-page "https://github.com/ekg/freebayes") + (synopsis "Haplotype-based variant detector") + (description "FreeBayes is a Bayesian genetic variant detector designed to +find small polymorphisms, specifically SNPs (single-nucleotide polymorphisms), +indels (insertions and deletions), MNPs (multi-nucleotide polymorphisms), and +complex events (composite insertion and substitution events) smaller than the +length of a short-read sequencing alignment.") + (license license:expat))))