From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:470:142:3::10]:56627) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1htCET-0007gS-4k for guix-patches@gnu.org; Thu, 01 Aug 2019 10:39:06 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1htCER-0005Mf-2b for guix-patches@gnu.org; Thu, 01 Aug 2019 10:39:04 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:46036) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1htCEQ-0005MP-O7 for guix-patches@gnu.org; Thu, 01 Aug 2019 10:39:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1htCEQ-00054V-HM for guix-patches@gnu.org; Thu, 01 Aug 2019 10:39:02 -0400 Subject: [bug#35792] [PATCH 7/7] gnu: Add freebayes. Resent-Message-ID: Date: Thu, 1 Aug 2019 09:38:35 -0500 From: Pjotr Prins Message-ID: <20190801143835.nf35dhemsgqmvdut@thebird.nl> References: <20190518172543.6766-1-mail@ambrevar.xyz> <20190518172640.7165-1-mail@ambrevar.xyz> <20190518172640.7165-7-mail@ambrevar.xyz> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20190518172640.7165-7-mail@ambrevar.xyz> List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: Pierre Neidhardt Cc: 35792@debbugs.gnu.org Can someone push this? On Sat, May 18, 2019 at 07:26:40PM +0200, Pierre Neidhardt wrote: > * 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)))) > -- > 2.21.0 > > > >