all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Ben Woodcroft <donttrustben@gmail.com>
To: guix-devel@gnu.org
Subject: [PATCH 22/22] gnu: Add roary.
Date: Wed, 27 Jul 2016 22:54:23 +1000	[thread overview]
Message-ID: <f751ce95188737aa9050e3fbaa4355ba586a19e5.1469622379.git.donttrustben@gmail.com> (raw)
In-Reply-To: <20160727125423.7768-1-donttrustben@gmail.com>
In-Reply-To: <d3453a89a3858e7455e46040f96146f52b9c24aa.1469622378.git.donttrustben@gmail.com>

* gnu/packages/bioinformatics.scm (roary): New variable.
---
 gnu/packages/bioinformatics.scm | 120 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 120 insertions(+)

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 4e599a7..7d4139b 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -63,6 +63,7 @@
   #:use-module (gnu packages mpi)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages pcre)
+  #:use-module (gnu packages parallel)
   #:use-module (gnu packages pdf)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
@@ -3297,6 +3298,125 @@ format.  It runs quickly, in an unsupervised fashion, handles gaps, handles
 partial genes, and identifies translation initiation sites.")
     (license license:gpl3+)))
 
+(define-public roary
+  (package
+    (name "roary")
+    (version "3.6.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "mirror://cpan/authors/id/A/AJ/AJPAGE/Bio-Roary-"
+             version ".tar.gz"))
+       (sha256
+        (base32
+         "1qscm97xa6vxxxlbh730gyp3b001abcg8iy2hvaqymc596x7hpi3"))))
+    (build-system perl-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'delete-bundled-binaries
+           (lambda _
+             (delete-file-recursively "binaries")
+             #t))
+         (delete 'configure)
+         (delete 'build)
+         (replace 'check
+           (lambda _
+             ;; The tests are not run by default, so we run each test file
+             ;; directly.
+             (setenv "PATH" (string-append (getcwd) "/bin" ":"
+                                           (getenv "PATH")))
+             (setenv "PERL5LIB" (string-append (getcwd) "/lib" ":"
+                                               (getenv "PERL5LIB")))
+             (zero? (length (filter (lambda (file)
+                                      (display file)(display "\n")
+                                      (not (zero? (system* "perl" file))))
+                                    (find-files "t" ".*\\.t$"))))))
+         (replace 'install
+           ;; There is no 'install' target in the Makefile.
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (bin (string-append out "/bin"))
+                    (perl (string-append out "/lib/perl5/site_perl"))
+                    (roary-plots "contrib/roary_plots"))
+               (mkdir-p bin)
+               (mkdir-p perl)
+               (copy-recursively "bin" bin)
+               (copy-recursively "lib" perl)
+               #t)))
+         (add-after 'install 'wrap-programs
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (perl5lib (getenv "PERL5LIB"))
+                    (path (getenv "PATH")))
+               (for-each (lambda (prog)
+                           (let ((binary (string-append out "/" prog)))
+                             (wrap-program binary
+                               `("PERL5LIB" ":" prefix
+                                 (,(string-append perl5lib ":" out
+                                                  "/lib/perl5/site_perl"))))
+                             (wrap-program binary
+                               `("PATH" ":" prefix
+                                 (,(string-append path ":" out "/bin"))))))
+                         (find-files "bin" ".*[^R]$"))
+               (let ((file
+                      (string-append out "/bin/roary-create_pan_genome_plots.R"))
+                     (r-site-lib (getenv "R_LIBS_SITE"))
+                     (coreutils-path
+                      (string-append (assoc-ref inputs "coreutils") "/bin")))
+                 (wrap-program file
+                   `("R_LIBS_SITE" ":" prefix
+                     (,(string-append r-site-lib ":" out "/site-library/"))))
+                 (wrap-program file
+                   `("PATH" ":" prefix
+                     (,(string-append coreutils-path ":" out "/bin"))))))
+             #t)))))
+    (native-inputs
+     `(("perl-env-path" ,perl-env-path)
+       ("perl-test-files" ,perl-test-files)
+       ("perl-test-most" ,perl-test-most)
+       ("perl-test-output" ,perl-test-output)))
+    (inputs
+     `(("perl-array-utils" ,perl-array-utils)
+       ("bioperl" ,bioperl-minimal)
+       ("perl-exception-class" ,perl-exception-class)
+       ("perl-file-find-rule" ,perl-file-find-rule)
+       ("perl-file-grep" ,perl-file-grep)
+       ("perl-file-slurper" ,perl-file-slurper)
+       ("perl-file-which" ,perl-file-which)
+       ("perl-graph" ,perl-graph)
+       ("perl-graph-readwrite" ,perl-graph-readwrite)
+       ("perl-log-log4perl" ,perl-log-log4perl)
+       ("perl-moose" ,perl-moose)
+       ("perl-perlio-utf8_strict" ,perl-perlio-utf8_strict)
+       ("perl-text-csv" ,perl-text-csv)
+       ("bedtools" ,bedtools)
+       ("cd-hit" ,cd-hit)
+       ("blast+" ,blast+)
+       ("mcl" ,mcl)
+       ("parallel" ,parallel)
+       ("prank" ,prank)
+       ("mafft" ,mafft)
+       ("fasttree" ,fasttree)
+       ("grep" ,grep)
+       ("sed" ,sed)
+       ("gawk" ,gawk)
+       ("r" ,r)
+       ("r-ggplot2" ,r-ggplot2)
+       ("coreutils" ,coreutils)))
+    (home-page "http://sanger-pathogens.github.io/Roary")
+    (synopsis "High speed stand-alone pan genome pipeline")
+    (description
+     "Roary is a high speed stand alone pan genome pipeline, which takes
+annotated assemblies in GFF3 format (produced by the Prokka program) and
+calculates the pan genome.  Using a standard desktop PC, it can analyse
+datasets with thousands of samples, without compromising the quality of the
+results.  128 samples can be analysed in under 1 hour using 1 GB of RAM and a
+single processor.  Roary is not intended for meta-genomics or for comparing
+extremely diverse sets of genomes.")
+    (license license:gpl3)))
+
 (define-public raxml
   (package
     (name "raxml")
-- 
2.9.1

  parent reply	other threads:[~2016-07-27 12:55 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-07-27 12:54 PATCH [0/22]: Add roary Ben Woodcroft
2016-07-27 12:54 ` [PATCH 01/22] gnu: parallel: Use full paths for executables Ben Woodcroft
2016-07-27 12:54   ` [PATCH 02/22] gnu: Add perl-xml-writer Ben Woodcroft
2016-07-27 12:54   ` [PATCH 03/22] gnu: Add perl-parse-yapp Ben Woodcroft
2016-07-27 12:54   ` [PATCH 04/22] gnu: Add perl-graph Ben Woodcroft
2016-07-27 12:54   ` [PATCH 05/22] gnu: Add perl-graph-readwrite Ben Woodcroft
2016-07-27 12:54   ` [PATCH 06/22] gnu: Add perl-log-log4perl Ben Woodcroft
2016-07-27 12:54   ` [PATCH 07/22] gnu: Add perl-file-slurper Ben Woodcroft
2016-07-27 12:54   ` [PATCH 08/22] gnu: Add perl-file-path Ben Woodcroft
2016-07-27 12:54   ` [PATCH 09/22] gnu: Add perl-file-grep Ben Woodcroft
2016-07-27 12:54   ` [PATCH 10/22] gnu: Add perl-array-utils Ben Woodcroft
2016-07-27 12:54   ` [PATCH 11/22] gnu: Add perl-test-files Ben Woodcroft
2016-07-27 12:54   ` [PATCH 12/22] gnu: Add perl-env-path Ben Woodcroft
2016-07-27 12:54   ` [PATCH 13/22] gnu: Add mcl Ben Woodcroft
2016-07-28 22:20     ` Leo Famulari
2016-07-27 12:54   ` [PATCH 14/22] gnu: Add bpp-core Ben Woodcroft
2016-07-27 12:54   ` [PATCH 15/22] gnu: Add bpp-seq Ben Woodcroft
2016-07-27 12:54   ` [PATCH 16/22] gnu: Add bpp-phyl Ben Woodcroft
2016-07-27 12:54   ` [PATCH 17/22] gnu: Add bpp-popgen Ben Woodcroft
2016-07-27 12:54   ` [PATCH 18/22] gnu: Add bppsuite Ben Woodcroft
2016-07-27 12:54   ` [PATCH 19/22] gnu: Add exonerate Ben Woodcroft
2016-07-28 22:22     ` Leo Famulari
2016-07-27 12:54   ` [PATCH 20/22] gnu: Add prank Ben Woodcroft
2016-07-27 12:54   ` [PATCH 21/22] gnu: Add raxml Ben Woodcroft
2016-07-27 12:54   ` Ben Woodcroft [this message]
2016-07-29 21:07     ` [PATCH 22/22] gnu: Add roary Leo Famulari
2016-07-28 22:31   ` [PATCH 01/22] gnu: parallel: Use full paths for executables Leo Famulari
2016-07-31 11:26 ` PATCH [0/22]: Add roary Ludovic Courtès
2016-08-08 12:16   ` Ben Woodcroft

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=f751ce95188737aa9050e3fbaa4355ba586a19e5.1469622379.git.donttrustben@gmail.com \
    --to=donttrustben@gmail.com \
    --cc=guix-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.