unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* [PATCH] Add MAFFT.
@ 2015-07-23 12:43 Ben Woodcroft
  2015-07-25 19:26 ` Ricardo Wurmus
  0 siblings, 1 reply; 13+ messages in thread
From: Ben Woodcroft @ 2015-07-23 12:43 UTC (permalink / raw)
  To: guix-devel@gnu.org

[-- Attachment #1: Type: text/plain, Size: 110 bytes --]

Note that the "extensions" listed on the website are research/non-profit 
only, and so not fit for inclusion.

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-gnu-Add-mafft.patch --]
[-- Type: text/x-patch; name="0001-gnu-Add-mafft.patch", Size: 3797 bytes --]

From b966b0c8ab9b194bbb7089cc4b4e3a9727862691 Mon Sep 17 00:00:00 2001
From: Ben Woodcroft <donttrustben@gmail.com>
Date: Thu, 23 Jul 2015 22:42:17 +1000
Subject: [PATCH] gnu: Add mafft.

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

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 78cd3ce..a09b89e 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -1394,6 +1394,63 @@ resolution of binding sites through combining the information of both
 sequencing tag position and orientation.")
     (license license:bsd-3)))
 
+(define-public mafft
+  (package
+    (name "mafft")
+    (version "7.221")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "http://mafft.cbrc.jp/alignment/software/mafft-" version
+                    "-without-extensions-src.tgz"))
+              (file-name (string-append name "-" version ".tgz"))
+              (sha256
+               (base32
+                "0xi7klbsgi049vsrk6jiwh9wfj3b770gz3c8c7zwij448v0dr73d"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f ; no automated tests, though there are tests in the readme
+       #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
+                          (string-append "BINDIR=" (string-append
+                                                    (assoc-ref %outputs "out")
+                                                    "/bin")))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'enter-dir
+                    (lambda _ (chdir "core") #t))
+         ;; on advice from the MAFFT authors, do not distribute mafft-profile,
+         ;; mafft-distance mafft-homologs.rb
+         (add-after 'enter-dir 'patch-makefile
+                    (lambda _
+                      (substitute* "Makefile"
+                        (("^SCRIPTS = mafft mafft-homologs.rb")
+                         "SCRIPTS = mafft")
+                        (((string-append "^PROGS = dvtditr dndfast7 dndblast"
+                                         " sextet5 mafft-distance"))
+                         "PROGS = dvtditr dndfast7 dndblast sextet5")
+                        (((string-append "splittbfast disttbfast tbfast "
+                                         "mafft-profile f2cl mccaskillwrap"))
+                         "splittbfast disttbfast tbfast f2cl mccaskillwrap")
+                        (("^rm -f mafft-profile mafft-profile.exe") "#")
+                        (("^rm -f mafft-distance mafft-distance.exe") ")#")
+                        ;; do not install MAN pages in libexec folder
+                        (((string-append "^\t\\$\\(INSTALL\\) -m 644 \\$\\("
+                                         "MANPAGES\\) \\$\\(DESTDIR\\)\\$"
+                                         "\\(LIBDIR\\)")) "#"))
+                      #t))
+         (delete 'configure))))
+    (inputs
+     `(("perl" ,perl)))
+    (home-page "http://mafft.cbrc.jp/alignment/software/")
+    (synopsis
+     "Multiple sequence alignment program for unix-like operating systems")
+    (description
+     "MAFFT offers a range of multiple alignment methods for nucleotide and
+protein sequences.  For instance, it offers L-INS-i (accurate; for alignment
+of <∼200 sequences) and FFT-NS-2 (fast; for alignment of <∼30,000
+sequences).")
+   (license (license:non-copyleft "file://license"
+                                  "See license in the distribution."))))
 
 (define-public metabat
   (package
-- 
2.4.3


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* Re: [PATCH] Add MAFFT.
  2015-07-23 12:43 [PATCH] Add MAFFT Ben Woodcroft
@ 2015-07-25 19:26 ` Ricardo Wurmus
  2015-07-26  3:10   ` Ben Woodcroft
  0 siblings, 1 reply; 13+ messages in thread
From: Ricardo Wurmus @ 2015-07-25 19:26 UTC (permalink / raw)
  To: Ben Woodcroft; +Cc: guix-devel@gnu.org

Hi Ben,

> +       #:phases
> +       (modify-phases %standard-phases
> +         (add-after 'unpack 'enter-dir
> +                    (lambda _ (chdir "core") #t))
> +         ;; on advice from the MAFFT authors, do not distribute mafft-profile,
> +         ;; mafft-distance mafft-homologs.rb

What does this mean?  Are they non-free software?  If so, they should be
removed in a snippet.

> +         (add-after 'enter-dir 'patch-makefile
> +                    (lambda _
> +                      (substitute* "Makefile"
> +                        (("^SCRIPTS = mafft mafft-homologs.rb")
> +                         "SCRIPTS = mafft")
> +                        (((string-append "^PROGS = dvtditr dndfast7 dndblast"
> +                                         " sextet5 mafft-distance"))
> +                         "PROGS = dvtditr dndfast7 dndblast sextet5")
> +                        (((string-append "splittbfast disttbfast tbfast "
> +                                         "mafft-profile f2cl mccaskillwrap"))
> +                         "splittbfast disttbfast tbfast f2cl mccaskillwrap")

This line looks particularly unclear.  It took me a little too long to
find the difference in the replacement.  Is there a nicer regular
expression that you could use to indicate the removal of
“mafft-profile”?

> +                        (("^rm -f mafft-profile mafft-profile.exe") "#")
> +                        (("^rm -f mafft-distance mafft-distance.exe") ")#")
> +                        ;; do not install MAN pages in libexec folder
> +                        (((string-append "^\t\\$\\(INSTALL\\) -m 644 \\$\\("
> +                                         "MANPAGES\\) \\$\\(DESTDIR\\)\\$"
> +                                         "\\(LIBDIR\\)")) "#"))
> +                      #t))
> +         (delete 'configure))))
> +    (inputs
> +     `(("perl" ,perl)))
> +    (home-page "http://mafft.cbrc.jp/alignment/software/")
> +    (synopsis
> +     "Multiple sequence alignment program for unix-like operating systems")

Please remove “for unix-like operating systems”.

> +    (description
> +     "MAFFT offers a range of multiple alignment methods for nucleotide and
> +protein sequences.  For instance, it offers L-INS-i (accurate; for alignment
> +of <∼200 sequences) and FFT-NS-2 (fast; for alignment of <∼30,000
> +sequences).")
> +   (license (license:non-copyleft "file://license"
> +                                  "See license in the distribution."))))

~~ Ricardo

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH] Add MAFFT.
  2015-07-25 19:26 ` Ricardo Wurmus
@ 2015-07-26  3:10   ` Ben Woodcroft
  2015-07-26  9:43     ` Andreas Enge
  0 siblings, 1 reply; 13+ messages in thread
From: Ben Woodcroft @ 2015-07-26  3:10 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: guix-devel@gnu.org

[-- Attachment #1: Type: text/plain, Size: 1988 bytes --]

On 26/07/15 05:26, Ricardo Wurmus wrote:
> Hi Ben,
>
>> +       #:phases
>> +       (modify-phases %standard-phases
>> +         (add-after 'unpack 'enter-dir
>> +                    (lambda _ (chdir "core") #t))
>> +         ;; on advice from the MAFFT authors, do not distribute mafft-profile,
>> +         ;; mafft-distance mafft-homologs.rb
> What does this mean?  Are they non-free software?  If so, they should be
> removed in a snippet.

Sorry for the confusion. MAFFT itself is all free software, but on the 
website it allows you to download a version "with-extensions" which 
includes non-free software.

I contacted the MAFFT authors and they suggested that there was no need 
to distribute these three programs in a mafft package. I've updated the 
comment to clarify.

I'm actually a bit confused as to the difference between a snippet vs. a 
patch stage as above - when is each appropriate? Snippets are only for 
removing non-free software?

>
>> +         (add-after 'enter-dir 'patch-makefile
>> +                    (lambda _
>> +                      (substitute* "Makefile"
>> +                        (("^SCRIPTS = mafft mafft-homologs.rb")
>> +                         "SCRIPTS = mafft")
>> +                        (((string-append "^PROGS = dvtditr dndfast7 dndblast"
>> +                                         " sextet5 mafft-distance"))
>> +                         "PROGS = dvtditr dndfast7 dndblast sextet5")
>> +                        (((string-append "splittbfast disttbfast tbfast "
>> +                                         "mafft-profile f2cl mccaskillwrap"))
>> +                         "splittbfast disttbfast tbfast f2cl mccaskillwrap")
> This line looks particularly unclear.  It took me a little too long to
> find the difference in the replacement.  Is there a nicer regular
> expression that you could use to indicate the removal of
> “mafft-profile”?

I've added comments and alignment.

ben

[-- Attachment #2: 0001-gnu-Add-mafft.patch --]
[-- Type: text/x-patch, Size: 5015 bytes --]

From ce50d7382c8f7f092faa56ff5316134417a9eca1 Mon Sep 17 00:00:00 2001
From: Ben Woodcroft <donttrustben@gmail.com>
Date: Sun, 26 Jul 2015 13:01:01 +1000
Subject: [PATCH] gnu: Add mafft.

* gnu/packages/bioinformatics.scm (mafft): New variable
---
 gnu/packages/bioinformatics.scm | 59 +++++++++++++++++++++++++++++++++++++----
 1 file changed, 54 insertions(+), 5 deletions(-)

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 38f01a8..11ef454 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -54,6 +54,54 @@
   #:use-module (gnu packages xml)
   #:use-module (gnu packages zip))
 
+(define-public aragorn
+  (package
+    (name "aragorn")
+    (version "1.2.36")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "http://mbio-serv2.mbioekol.lu.se/ARAGORN/Downloads/aragorn"
+                    version ".tgz"))
+              (sha256
+               (base32
+                "1dg7jlz1qpqy88igjxd6ncs11ccsirb36qv1z01a0np4i4jh61mb"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f ; there are no tests
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (replace 'build
+                  (lambda _
+                    (zero? (system* "gcc"
+                                    "-O3"
+                                    "-ffast-math"
+                                    "-finline-functions"
+                                    "-o"
+                                    "aragorn"
+                                    (string-append "aragorn" ,version ".c")))))
+         (replace 'install
+                  (lambda* (#:key outputs #:allow-other-keys)
+                    (let* ((out (assoc-ref outputs "out"))
+                           (bin (string-append out "/bin"))
+                           (man (string-append out "/share/man/man1")))
+                      (mkdir-p bin)
+                      (copy-file "aragorn"
+                                 (string-append bin "/aragorn"))
+                      (mkdir-p man)
+                      (copy-file "aragorn.1"
+                                 (string-append man "/aragorn.1")))
+                    #t)))))
+    (home-page "http://mbio-serv2.mbioekol.lu.se/ARAGORN")
+    (synopsis "Detect tRNA, mtRNA and tmRNA genes in nucleotide sequences")
+    (description
+     "Aragorn identifies transfer RNA, mitochondrial RNA and
+transfer-messenger RNA from nucleotide sequences, based on homology to known
+tRNA consensus sequences and RNA structure.  It also outputs the secondary
+structure of the predicted RNA.")
+    (license license:gpl2)))
+
 (define-public bamtools
   (package
     (name "bamtools")
@@ -148,7 +196,7 @@ computational cluster.")
 (define-public bedtools
   (package
     (name "bedtools")
-    (version "2.22.0")
+    (version "2.24.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/arq5x/bedtools2/archive/v"
@@ -156,7 +204,7 @@ computational cluster.")
               (file-name (string-append name "-" version ".tar.gz"))
               (sha256
                (base32
-                "16aq0w3dmbd0853j32xk9jin4vb6v6fgakfyvrsmsjizzbn3fpfl"))))
+                "0lnxrjvs3nnmb4bmskag1wg3h2hd80przz5q3xd0bvs7vyxrvpbl"))))
     (build-system gnu-build-system)
     (native-inputs `(("python" ,python-2)))
     (inputs `(("samtools" ,samtools)
@@ -1409,7 +1457,7 @@ sequencing tag position and orientation.")
                 "0xi7klbsgi049vsrk6jiwh9wfj3b770gz3c8c7zwij448v0dr73d"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:tests? #f ; no automated tests, though there are tests in the readme
+     `(#:tests? #f ; no automated tests, though there are tests in the read me
        #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
                           (string-append "BINDIR=" (string-append
                                                     (assoc-ref %outputs "out")
@@ -1424,10 +1472,11 @@ sequencing tag position and orientation.")
                       ;; distribute mafft-profile, mafft-distance, or
                       ;; mafft-homologs.rb as they are too "specialised".
                       (substitute* "Makefile"
+                        ;; remove mafft-homologs.rb from SCRIPTS
                         (("^SCRIPTS = mafft mafft-homologs.rb")
                          "SCRIPTS = mafft")
-                        ;; remove mafft-distance from PROGS 
-                       (((string-append "^PROGS = dvtditr dndfast7 dndblast"
+                        ;; remove mafft-distance from PROGS
+                        (((string-append "^PROGS = dvtditr dndfast7 dndblast"
                                          " sextet5 mafft-distance"))
                          "PROGS = dvtditr dndfast7 dndblast sextet5")
                         ;; remove mafft-profile from PROGS
-- 
2.4.3


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* Re: [PATCH] Add MAFFT.
  2015-07-26  3:10   ` Ben Woodcroft
@ 2015-07-26  9:43     ` Andreas Enge
  2015-07-26 10:16       ` Ricardo Wurmus
  2015-07-26 10:29       ` Andreas Enge
  0 siblings, 2 replies; 13+ messages in thread
From: Andreas Enge @ 2015-07-26  9:43 UTC (permalink / raw)
  To: Ben Woodcroft; +Cc: guix-devel@gnu.org

On Sun, Jul 26, 2015 at 01:10:14PM +1000, Ben Woodcroft wrote:
> I'm actually a bit confused as to the difference between a snippet vs. a
> patch stage as above - when is each appropriate? Snippets are only for
> removing non-free software?

I would use a snippet for something internal to Guix, or specific to the
way we handle things, while a patch is intended to be passed upstream (or
sometimes taken from upstream already) to correct a bug in the software.

Andreas

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH] Add MAFFT.
  2015-07-26  9:43     ` Andreas Enge
@ 2015-07-26 10:16       ` Ricardo Wurmus
  2015-07-26 10:29       ` Andreas Enge
  1 sibling, 0 replies; 13+ messages in thread
From: Ricardo Wurmus @ 2015-07-26 10:16 UTC (permalink / raw)
  To: Andreas Enge; +Cc: guix-devel@gnu.org


Andreas Enge <andreas@enge.fr> writes:

> On Sun, Jul 26, 2015 at 01:10:14PM +1000, Ben Woodcroft wrote:
>> I'm actually a bit confused as to the difference between a snippet vs. a
>> patch stage as above - when is each appropriate? Snippets are only for
>> removing non-free software?
>
> I would use a snippet for something internal to Guix, or specific to the
> way we handle things, while a patch is intended to be passed upstream (or
> sometimes taken from upstream already) to correct a bug in the software.

It should be noted that changes performed by snippets directly affect
the resulting tarball produced by ‘guix build -S’.  Whenever you want
the sources for a package to be permanently modified for the users, a
snippet would be the right way to achieve that.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH] Add MAFFT.
  2015-07-26  9:43     ` Andreas Enge
  2015-07-26 10:16       ` Ricardo Wurmus
@ 2015-07-26 10:29       ` Andreas Enge
  2015-07-31 22:42         ` Ben Woodcroft
  1 sibling, 1 reply; 13+ messages in thread
From: Andreas Enge @ 2015-07-26 10:29 UTC (permalink / raw)
  To: Ben Woodcroft; +Cc: guix-devel@gnu.org

On Sun, Jul 26, 2015 at 11:43:38AM +0200, Andreas Enge wrote:
> I would use a snippet for something internal to Guix, or specific to the
> way we handle things, while a patch is intended to be passed upstream (or
> sometimes taken from upstream already) to correct a bug in the software.

Well, I am contradicting myself. Right now, I am creating a patch for some-
thing internal to Guix, just because it is much easier to do so than to
use a snippet. I think there are no fixed rules...

Andreas

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH] Add MAFFT.
  2015-07-26 10:29       ` Andreas Enge
@ 2015-07-31 22:42         ` Ben Woodcroft
  2015-08-25 20:58           ` Ludovic Courtès
  0 siblings, 1 reply; 13+ messages in thread
From: Ben Woodcroft @ 2015-07-31 22:42 UTC (permalink / raw)
  To: Andreas Enge; +Cc: guix-devel@gnu.org



On 26/07/15 20:29, Andreas Enge wrote:
> On Sun, Jul 26, 2015 at 11:43:38AM +0200, Andreas Enge wrote:
>> I would use a snippet for something internal to Guix, or specific to the
>> way we handle things, while a patch is intended to be passed upstream (or
>> sometimes taken from upstream already) to correct a bug in the software.
> Well, I am contradicting myself. Right now, I am creating a patch for some-
> thing internal to Guix, just because it is much easier to do so than to
> use a snippet. I think there are no fixed rules...
Thanks for the tips Andreas, Ricardo. Is anything amiss with the 
original patch?

ben

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH] Add MAFFT.
  2015-07-31 22:42         ` Ben Woodcroft
@ 2015-08-25 20:58           ` Ludovic Courtès
  2015-09-07  8:55             ` Andreas Enge
  0 siblings, 1 reply; 13+ messages in thread
From: Ludovic Courtès @ 2015-08-25 20:58 UTC (permalink / raw)
  To: Ben Woodcroft; +Cc: guix-devel@gnu.org

Ben Woodcroft <b.woodcroft@uq.edu.au> skribis:

> On 26/07/15 20:29, Andreas Enge wrote:
>> On Sun, Jul 26, 2015 at 11:43:38AM +0200, Andreas Enge wrote:
>>> I would use a snippet for something internal to Guix, or specific to the
>>> way we handle things, while a patch is intended to be passed upstream (or
>>> sometimes taken from upstream already) to correct a bug in the software.
>> Well, I am contradicting myself. Right now, I am creating a patch for some-
>> thing internal to Guix, just because it is much easier to do so than to
>> use a snippet. I think there are no fixed rules...
> Thanks for the tips Andreas, Ricardo. Is anything amiss with the
> original patch?

It seems this message was left unanswered.  Andreas?

Ludo’.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH] Add MAFFT.
  2015-08-25 20:58           ` Ludovic Courtès
@ 2015-09-07  8:55             ` Andreas Enge
  2015-09-07  9:07               ` Ricardo Wurmus
  2015-09-12 12:20               ` Ben Woodcroft
  0 siblings, 2 replies; 13+ messages in thread
From: Andreas Enge @ 2015-09-07  8:55 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-devel@gnu.org

On Tue, Aug 25, 2015 at 10:58:42PM +0200, Ludovic Courtès wrote:
> It seems this message was left unanswered.  Andreas?

I had a cursory look at the patch, here are some comments:

On Thu, Jul 23, 2015 at 10:43:31PM +1000, Ben Woodcroft wrote:
> +       #:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
> +                          (string-append "BINDIR=" (string-append
> +                                                    (assoc-ref %outputs "out")
> +                                                    "/bin")))

Would it make sense to include this into a 
  (let ((out (assoc-ref %outputs out))) ...)
?

> +         (add-after 'enter-dir 'patch-makefile
> +                    (lambda _
> +                      (substitute* "Makefile"
> +                        (("^SCRIPTS = mafft mafft-homologs.rb")
> +                         "SCRIPTS = mafft")
> +                        (((string-append "^PROGS = dvtditr dndfast7 dndblast"
> +                                         " sextet5 mafft-distance"))
> +                         "PROGS = dvtditr dndfast7 dndblast sextet5")

This "string-append" to concatenate two literal strings is difficult to read;
I would suggest to move the "(lambda" more to the left so that everything
fits into one line.

> +    (synopsis
> +     "Multiple sequence alignment program for unix-like operating systems")

Maybe drop "for unix-like operating systems"; instead, you could add
"for nucleotide and protein sequences" from the description.

> +protein sequences.  For instance, it offers L-INS-i (accurate; for alignment
> +of <???200 sequences) and FFT-NS-2 (fast; for alignment of <???30,000

Is this an artefact of the mailer?

I did not check whether the package passes "guix lint".

Could you send an updated patch?

Andreas

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH] Add MAFFT.
  2015-09-07  8:55             ` Andreas Enge
@ 2015-09-07  9:07               ` Ricardo Wurmus
  2015-09-12 12:20               ` Ben Woodcroft
  1 sibling, 0 replies; 13+ messages in thread
From: Ricardo Wurmus @ 2015-09-07  9:07 UTC (permalink / raw)
  To: Andreas Enge; +Cc: guix-devel@gnu.org


Andreas Enge <andreas@enge.fr> writes:

>> +protein sequences.  For instance, it offers L-INS-i (accurate; for alignment
>> +of <???200 sequences) and FFT-NS-2 (fast; for alignment of <???30,000
>
> Is this an artefact of the mailer?

In the original patch I see this instead:

> +     "MAFFT offers a range of multiple alignment methods for nucleotide and
> +protein sequences.  For instance, it offers L-INS-i (accurate; for alignment
> +of <∼200 sequences) and FFT-NS-2 (fast; for alignment of <∼30,000
> +sequences).")

It’s not a problem with the patch.

~~ Ricardo

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH] Add MAFFT.
  2015-09-07  8:55             ` Andreas Enge
  2015-09-07  9:07               ` Ricardo Wurmus
@ 2015-09-12 12:20               ` Ben Woodcroft
  2015-09-16 20:19                 ` Ludovic Courtès
  1 sibling, 1 reply; 13+ messages in thread
From: Ben Woodcroft @ 2015-09-12 12:20 UTC (permalink / raw)
  To: Andreas Enge, Ricardo Wurmus; +Cc: guix-devel@gnu.org

[-- Attachment #1: Type: text/plain, Size: 805 bytes --]

On 07/09/15 18:55, Andreas Enge wrote:
> On Tue, Aug 25, 2015 at 10:58:42PM +0200, Ludovic Courtès wrote:
>> It seems this message was left unanswered.  Andreas?
> I had a cursory look at the patch, here are some comments:
>
> [..]
>> +protein sequences.  For instance, it offers L-INS-i (accurate; for alignment
>> +of <???200 sequences) and FFT-NS-2 (fast; for alignment of <???30,000
> Is this an artefact of the mailer?
>
> I did not check whether the package passes "guix lint".
>
> Could you send an updated patch?
Attached - I was only able to remove some of the long string-append 
lines. Apologies for that second "patch" - not intentional. Thanks for 
the review. I've changed the character to a different "~" so hopefully 
more standard now. Guix lint doesn't complain.

ben

[-- Attachment #2: 0001-gnu-Add-mafft.patch --]
[-- Type: text/x-patch, Size: 3665 bytes --]

From 0796e8be05977e6d30eab787a1550bd8d1f12b2d Mon Sep 17 00:00:00 2001
From: Ben Woodcroft <donttrustben@gmail.com>
Date: Sat, 12 Sep 2015 22:10:20 +1000
Subject: [PATCH] gnu: Add mafft.

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

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 03eb2df..e0b7e40 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -1543,6 +1543,66 @@ resolution of binding sites through combining the information of both
 sequencing tag position and orientation.")
     (license license:bsd-3)))
 
+(define-public mafft
+  (package
+    (name "mafft")
+    (version "7.221")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "http://mafft.cbrc.jp/alignment/software/mafft-" version
+                    "-without-extensions-src.tgz"))
+              (file-name (string-append name "-" version ".tgz"))
+              (sha256
+               (base32
+                "0xi7klbsgi049vsrk6jiwh9wfj3b770gz3c8c7zwij448v0dr73d"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f ; no automated tests, though there are tests in the read me
+       #:make-flags (let ((out (assoc-ref %outputs "out")))
+                      (list (string-append "PREFIX=" out)
+                            (string-append "BINDIR="
+                                           (string-append out "/bin"))))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'enter-dir
+            (lambda _ (chdir "core") #t))
+         (add-after 'enter-dir 'patch-makefile
+            (lambda _
+              ;; on advice from the MAFFT authors, there is no need to
+              ;; distribute mafft-profile, mafft-distance, or
+              ;; mafft-homologs.rb as they are too "specialised".
+              (substitute* "Makefile"
+                ;; remove mafft-homologs.rb from SCRIPTS
+                (("^SCRIPTS = mafft mafft-homologs.rb")
+                  "SCRIPTS = mafft")
+                ;; remove mafft-distance from PROGS
+                (("^PROGS = dvtditr dndfast7 dndblast sextet5 mafft-distance")
+                  "PROGS = dvtditr dndfast7 dndblast sextet5")
+                ;; remove mafft-profile from PROGS
+                (((string-append "splittbfast disttbfast tbfast mafft-profile"
+                                 " f2cl mccaskillwrap"))
+                 "splittbfast disttbfast tbfast f2cl mccaskillwrap")
+                (("^rm -f mafft-profile mafft-profile.exe") "#")
+                (("^rm -f mafft-distance mafft-distance.exe") ")#")
+                ;; do not install MAN pages in libexec folder
+                (((string-append "^\t\\$\\(INSTALL\\) -m 644 \\$\\(MANPAGES"
+                                 "\\) \\$\\(DESTDIR\\)\\$\\(LIBDIR\\)"))
+                 "#"))
+              #t))
+         (delete 'configure))))
+    (inputs
+     `(("perl" ,perl)))
+    (home-page "http://mafft.cbrc.jp/alignment/software/")
+    (synopsis
+     "Multiple sequence alignment program")
+    (description
+     "MAFFT offers a range of multiple alignment methods for nucleotide and
+protein sequences.  For instance, it offers L-INS-i (accurate; for alignment
+of <~200 sequences) and FFT-NS-2 (fast; for alignment of <~30,000
+sequences).")
+   (license (license:non-copyleft "file://license"
+                                  "See license in the distribution."))))
 
 (define-public metabat
   (package
-- 
2.4.3


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* Re: [PATCH] Add MAFFT.
  2015-09-12 12:20               ` Ben Woodcroft
@ 2015-09-16 20:19                 ` Ludovic Courtès
  2015-09-16 21:09                   ` Ricardo Wurmus
  0 siblings, 1 reply; 13+ messages in thread
From: Ludovic Courtès @ 2015-09-16 20:19 UTC (permalink / raw)
  To: Ben Woodcroft; +Cc: guix-devel@gnu.org

Ben Woodcroft <b.woodcroft@uq.edu.au> skribis:

> From 0796e8be05977e6d30eab787a1550bd8d1f12b2d Mon Sep 17 00:00:00 2001
> From: Ben Woodcroft <donttrustben@gmail.com>
> Date: Sat, 12 Sep 2015 22:10:20 +1000
> Subject: [PATCH] gnu: Add mafft.
>
> * gnu/packages/bioinformatics.scm (mafft): New variable.

I’ll leave it to Ricardo, but two minor comments:

> +              (substitute* "Makefile"
> +                ;; remove mafft-homologs.rb from SCRIPTS
> +                (("^SCRIPTS = mafft mafft-homologs.rb")
> +                  "SCRIPTS = mafft")
> +                ;; remove mafft-distance from PROGS
> +                (("^PROGS = dvtditr dndfast7 dndblast sextet5 mafft-distance")
> +                  "PROGS = dvtditr dndfast7 dndblast sextet5")
> +                ;; remove mafft-profile from PROGS
> +                (((string-append "splittbfast disttbfast tbfast mafft-profile"
> +                                 " f2cl mccaskillwrap"))
> +                 "splittbfast disttbfast tbfast f2cl mccaskillwrap")
> +                (("^rm -f mafft-profile mafft-profile.exe") "#")
> +                (("^rm -f mafft-distance mafft-distance.exe") ")#")
> +                ;; do not install MAN pages in libexec folder
> +                (((string-append "^\t\\$\\(INSTALL\\) -m 644 \\$\\(MANPAGES"
> +                                 "\\) \\$\\(DESTDIR\\)\\$\\(LIBDIR\\)"))
> +                 "#"))

Maybe not a blocker, but I would really prefer to patterns to be literal
strings.  If they are too long, we can always split the literal over two
lines:

    "like \
this"

> +   (license (license:non-copyleft "file://license"
> +                                  "See license in the distribution."))))

I think this should be something like:

  (license (license:non-copyleft
             "http://mafft.cbrc.jp/alignment/software/license.txt"
             "BSD-3 with different formatting"))

Thanks,
Ludo’.

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCH] Add MAFFT.
  2015-09-16 20:19                 ` Ludovic Courtès
@ 2015-09-16 21:09                   ` Ricardo Wurmus
  0 siblings, 0 replies; 13+ messages in thread
From: Ricardo Wurmus @ 2015-09-16 21:09 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-devel@gnu.org

Ludovic Courtès <ludo@gnu.org> writes:

> Ben Woodcroft <b.woodcroft@uq.edu.au> skribis:
>
>> From 0796e8be05977e6d30eab787a1550bd8d1f12b2d Mon Sep 17 00:00:00 2001
>> From: Ben Woodcroft <donttrustben@gmail.com>
>> Date: Sat, 12 Sep 2015 22:10:20 +1000
>> Subject: [PATCH] gnu: Add mafft.
>>
>> * gnu/packages/bioinformatics.scm (mafft): New variable.
>
> I’ll leave it to Ricardo, but two minor comments:

My apologies for the delay.  I flagged this email (along with a couple
of others) as important but it was drowned out by a stream of other
“important” emails... Bleh.

> Maybe not a blocker, but I would really prefer to patterns to be literal
> strings.  If they are too long, we can always split the literal over two
> lines:
>
>     "like \
> this"

I’ve corrected the indentation for the phases and split the string
literals where appropriate instead of using ‘string-append’.

>
>> +   (license (license:non-copyleft "file://license"
>> +                                  "See license in the distribution."))))
>
> I think this should be something like:
>
>   (license (license:non-copyleft
>              "http://mafft.cbrc.jp/alignment/software/license.txt"
>              "BSD-3 with different formatting"))

I replaced the license statement with your suggestion and pushed it.

Thank you, Ben, for the patch and your patience; thank you, Ludo, for
the reviews!

~~ Ricardo

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2015-09-16 21:10 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-07-23 12:43 [PATCH] Add MAFFT Ben Woodcroft
2015-07-25 19:26 ` Ricardo Wurmus
2015-07-26  3:10   ` Ben Woodcroft
2015-07-26  9:43     ` Andreas Enge
2015-07-26 10:16       ` Ricardo Wurmus
2015-07-26 10:29       ` Andreas Enge
2015-07-31 22:42         ` Ben Woodcroft
2015-08-25 20:58           ` Ludovic Courtès
2015-09-07  8:55             ` Andreas Enge
2015-09-07  9:07               ` Ricardo Wurmus
2015-09-12 12:20               ` Ben Woodcroft
2015-09-16 20:19                 ` Ludovic Courtès
2015-09-16 21:09                   ` Ricardo Wurmus

Code repositories for project(s) associated with this public inbox

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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).