unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* [PATCH] gnu: Add hmmer
@ 2015-06-21  8:52 Ben Woodcroft
  2015-06-21  9:51 ` Ricardo Wurmus
  0 siblings, 1 reply; 10+ messages in thread
From: Ben Woodcroft @ 2015-06-21  8:52 UTC (permalink / raw)
  To: guix-devel@gnu.org

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

One of my favourite pieces of software.

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

From 7afc66fcf58e75e3738edf31f3cf1da0c1fe4488 Mon Sep 17 00:00:00 2001
From: Ben Woodcroft <donttrustben@gmail.com>
Date: Sun, 21 Jun 2015 18:49:56 +1000
Subject: [PATCH] gnu: Add hmmer.

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

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 8dfaff3..a41d0f5 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -1032,6 +1032,29 @@ several alignment strategies enable effective alignment of RNA-seq reads, in
 particular, reads spanning multiple exons.")
     (license license:gpl3+)))
 
+(define-public hmmer
+  (package
+    (name "hmmer")
+    (version "3.1b2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "http://selab.janelia.org/software/hmmer3/3.1b2/hmmer-"
+		    version ".tar.gz"))
+              (sha256
+               (base32
+                "0djmgc0pfli0jilfx8hql1axhwhqxqb8rxg2r5rg07aw73sfs5nx"))))
+    (build-system gnu-build-system)
+    (native-inputs `(("perl", perl)))
+    (home-page "http://hmmer.janelia.org")
+    (synopsis "Biosequence analysis using profile hidden Markov models")
+    (description
+     "HMMER is used for searching sequence databases for homologs of protein
+sequences, and for making protein sequence alignments.  It implements methods
+using probabilistic models called profile hidden Markov models (profile
+HMMs).")
+    (license license:gpl3+)))
+
 (define-public htseq
   (package
     (name "htseq")
-- 
2.1.4


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

* Re: [PATCH] gnu: Add hmmer
  2015-06-21  8:52 [PATCH] gnu: Add hmmer Ben Woodcroft
@ 2015-06-21  9:51 ` Ricardo Wurmus
  2015-06-21 10:17   ` Ben Woodcroft
  0 siblings, 1 reply; 10+ messages in thread
From: Ricardo Wurmus @ 2015-06-21  9:51 UTC (permalink / raw)
  To: Ben Woodcroft; +Cc: guix-devel@gnu.org


> +(define-public hmmer
> +  (package
> +    (name "hmmer")
> +    (version "3.1b2")
> +    (source (origin
> +              (method url-fetch)
> +              (uri (string-append
> +                    "http://selab.janelia.org/software/hmmer3/3.1b2/hmmer-"
> +		    version ".tar.gz"))

This line is not aligned properly (probably because you are mixing tabs
and spaces).

The version number is also used in other parts of the URL.  How about
this instead (not tested):

  (uri (string-append
        "http://selab.janelia.org/software/hmmer"
        (version-prefix version 1) "/"
        version "/hmmer-" version ".tar.gz"))

The rest looks good to me.

~~ Ricardo

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

* Re: [PATCH] gnu: Add hmmer
  2015-06-21  9:51 ` Ricardo Wurmus
@ 2015-06-21 10:17   ` Ben Woodcroft
  2015-06-21 17:17     ` Mark H Weaver
  0 siblings, 1 reply; 10+ messages in thread
From: Ben Woodcroft @ 2015-06-21 10:17 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: guix-devel@gnu.org

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

On 21/06/15 19:51, Ricardo Wurmus wrote:
> The version number is also used in other parts of the URL.  How about
> this instead (not tested):
Works just fine - attached.

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

From d49710b5a87bfdbe3c12222fd7f42f4fc67875e5 Mon Sep 17 00:00:00 2001
From: Ben Woodcroft <donttrustben@gmail.com>
Date: Sun, 21 Jun 2015 20:15:31 +1000
Subject: [PATCH] gnu: Add hmmer.

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

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 8dfaff3..bb5f942 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -1032,6 +1032,30 @@ several alignment strategies enable effective alignment of RNA-seq reads, in
 particular, reads spanning multiple exons.")
     (license license:gpl3+)))
 
+(define-public hmmer
+  (package
+    (name "hmmer")
+    (version "3.1b2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "http://selab.janelia.org/software/hmmer"
+                    (version-prefix version 1) "/"
+                    version "/hmmer-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0djmgc0pfli0jilfx8hql1axhwhqxqb8rxg2r5rg07aw73sfs5nx"))))
+    (build-system gnu-build-system)
+    (native-inputs `(("perl", perl)))
+    (home-page "http://hmmer.janelia.org")
+    (synopsis "Biosequence analysis using profile hidden Markov models")
+    (description
+     "HMMER is used for searching sequence databases for homologs of protein
+sequences, and for making protein sequence alignments.  It implements methods
+using probabilistic models called profile hidden Markov models (profile
+HMMs).")
+    (license license:gpl3+)))
+
 (define-public htseq
   (package
     (name "htseq")
-- 
2.1.4


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

* Re: [PATCH] gnu: Add hmmer
  2015-06-21 10:17   ` Ben Woodcroft
@ 2015-06-21 17:17     ` Mark H Weaver
  2015-06-21 18:11       ` Pjotr Prins
  0 siblings, 1 reply; 10+ messages in thread
From: Mark H Weaver @ 2015-06-21 17:17 UTC (permalink / raw)
  To: Ben Woodcroft; +Cc: guix-devel

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

> From d49710b5a87bfdbe3c12222fd7f42f4fc67875e5 Mon Sep 17 00:00:00 2001
> From: Ben Woodcroft <donttrustben@gmail.com>
> Date: Sun, 21 Jun 2015 20:15:31 +1000
> Subject: [PATCH] gnu: Add hmmer.
>
> * gnu/packages/bioinformatics.scm (hmmer): New variable.
> ---
>  gnu/packages/bioinformatics.scm | 24 ++++++++++++++++++++++++
>  1 file changed, 24 insertions(+)
>
> diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
> index 8dfaff3..bb5f942 100644
> --- a/gnu/packages/bioinformatics.scm
> +++ b/gnu/packages/bioinformatics.scm
> @@ -1032,6 +1032,30 @@ several alignment strategies enable effective alignment of RNA-seq reads, in
>  particular, reads spanning multiple exons.")
>      (license license:gpl3+)))
>  
> +(define-public hmmer
> +  (package
> +    (name "hmmer")
> +    (version "3.1b2")
> +    (source (origin
> +              (method url-fetch)
> +              (uri (string-append
> +                    "http://selab.janelia.org/software/hmmer"
> +                    (version-prefix version 1) "/"
> +                    version "/hmmer-" version ".tar.gz"))
> +              (sha256
> +               (base32
> +                "0djmgc0pfli0jilfx8hql1axhwhqxqb8rxg2r5rg07aw73sfs5nx"))))
> +    (build-system gnu-build-system)
> +    (native-inputs `(("perl", perl)))
> +    (home-page "http://hmmer.janelia.org")
> +    (synopsis "Biosequence analysis using profile hidden Markov models")
> +    (description
> +     "HMMER is used for searching sequence databases for homologs of protein
> +sequences, and for making protein sequence alignments.  It implements methods
> +using probabilistic models called profile hidden Markov models (profile
> +HMMs).")
> +    (license license:gpl3+)))

The code in the 'easel' subdirectory is under a different license, "The
Janelia Farm Software License".  So you should do something like this:

--8<---------------cut here---------------start------------->8---
    (license (list license:gpl3+
                   ;; The bundled library 'easel' is distributed
                   ;; under The Janelia Farm Software License.
                   (non-copyleft "file://easel/LICENSE"
                                 "See easel/LICENSE in the distribution.")))))
--8<---------------cut here---------------end--------------->8---

It's not good that hmmer bundles its own copy of easel.  If we ever need
easel for another package, we should find a way to build hmmer against
the external easel library.  Having multiple copies of the same library
on the system potentially means multiple copies in RAM, and more
importantly: multiple copies that need to be patched for fixes,
especially security fixes.

However, we can cross that bridge when we come to it.  From a brief
glance, it seems that separating the two will not be trivial :-/

      Mark

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

* Re: [PATCH] gnu: Add hmmer
  2015-06-21 17:17     ` Mark H Weaver
@ 2015-06-21 18:11       ` Pjotr Prins
  2015-06-21 18:23         ` Ricardo Wurmus
  0 siblings, 1 reply; 10+ messages in thread
From: Pjotr Prins @ 2015-06-21 18:11 UTC (permalink / raw)
  To: Mark H Weaver; +Cc: guix-devel

On Sun, Jun 21, 2015 at 01:17:31PM -0400, Mark H Weaver wrote:
> It's not good that hmmer bundles its own copy of easel.  If we ever need
> easel for another package, we should find a way to build hmmer against
> the external easel library.  Having multiple copies of the same library
> on the system potentially means multiple copies in RAM, and more
> importantly: multiple copies that need to be patched for fixes,
> especially security fixes.

It is quite common in bioinformatics tools to include foreign code.
One reason in favour of including the original setup that is it is
THAT what the authors and others test and run. Bringing in our own
dependencies is bound to open a can of worms - there often is a reason
they bring in that packaged code. One reason is that they depend on an older
version ;). 

For that reason I favor deploying what the original authors suggest. I
am not too concerned about security fixes as long as the tools run in
user space and do not expose network services. Most bioinformatics
tools are in that category.

Pj.

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

* Re: [PATCH] gnu: Add hmmer
  2015-06-21 18:11       ` Pjotr Prins
@ 2015-06-21 18:23         ` Ricardo Wurmus
  2015-06-24  1:37           ` Ben Woodcroft
  0 siblings, 1 reply; 10+ messages in thread
From: Ricardo Wurmus @ 2015-06-21 18:23 UTC (permalink / raw)
  To: Pjotr Prins; +Cc: guix-devel


Pjotr Prins <pjotr.public12@thebird.nl> writes:

> It is quite common in bioinformatics tools to include foreign code.
> One reason in favour of including the original setup that is it is
> THAT what the authors and others test and run. Bringing in our own
> dependencies is bound to open a can of worms - there often is a reason
> they bring in that packaged code. One reason is that they depend on an older
> version ;). 

With Guix we have no problem with packaging older versions.  I have
untangled a number of applications with bundled libraries before.  It is
doable, better for reproducibility, and better for security.

I often submit bug reports upstream when I encounter bundling when
attempting to package software and I encourage others to do the same.

~~ Ricardo

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

* Re: [PATCH] gnu: Add hmmer
  2015-06-21 18:23         ` Ricardo Wurmus
@ 2015-06-24  1:37           ` Ben Woodcroft
  2015-06-24  1:48             ` Ben Woodcroft
  0 siblings, 1 reply; 10+ messages in thread
From: Ben Woodcroft @ 2015-06-24  1:37 UTC (permalink / raw)
  To: Ricardo Wurmus, Pjotr Prins; +Cc: guix-devel

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

Thanks Mark, that's the only change in the attached patch, except that 
"license:" is added too.

On 22/06/15 04:23, Ricardo Wurmus wrote:
> Pjotr Prins <pjotr.public12@thebird.nl> writes:
>
>> It is quite common in bioinformatics tools to include foreign code.
>> One reason in favour of including the original setup that is it is
>> THAT what the authors and others test and run. Bringing in our own
>> dependencies is bound to open a can of worms - there often is a reason
>> they bring in that packaged code. One reason is that they depend on an older
>> version ;).
> With Guix we have no problem with packaging older versions.  I have
> untangled a number of applications with bundled libraries before.  It is
> doable, better for reproducibility, and better for security.
>
> I often submit bug reports upstream when I encounter bundling when
> attempting to package software and I encourage others to do the same.
>
> ~~ Ricardo
In general I agree Ricardo. I find devs do this sometimes also because 
they are trying to help their users. It is as if they need some kind of 
package distribution system. Hopefully if guix takes off devs will 
increasingly not bundle dependencies because they can rely on guix to do 
it for them, in turn making them easier to package. In this case easel 
is quite baked in from my brief look e.g. hard coded paths to it in 
configure.ac, and anyway I was unable to source easel separately (the 
bioeasel.org domain seems to have lapsed), and I'm not aware of many 
other software packages using it anyway (but cannot know for sure).

Speaking of pleasant thoughts, for many reasons there's a lot of 
software in bioinformatics that has zero testing, which is bad. The 
pleasant thing is that in a packaging system that runs tests of packages 
that rely on other packages, if the downstream package has tests that 
fail because the upstream package no longer works then hydra will know 
about this through the magic of continuous integrations. So I don't need 
to write tests for my software, I just need to make sure the software is 
used by other devs that do use tests, right?

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

From 5002a93221dbd77c8dbb4212eb463e13bf4b9361 Mon Sep 17 00:00:00 2001
From: Ben Woodcroft <donttrustben@gmail.com>
Date: Wed, 24 Jun 2015 11:16:53 +1000
Subject: [PATCH] gnu: Add hmmer.

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

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 8dfaff3..32d1cbd 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -1032,6 +1032,35 @@ several alignment strategies enable effective alignment of RNA-seq reads, in
 particular, reads spanning multiple exons.")
     (license license:gpl3+)))
 
+(define-public hmmer
+  (package
+    (name "hmmer")
+    (version "3.1b2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "http://selab.janelia.org/software/hmmer"
+                    (version-prefix version 1) "/"
+                    version "/hmmer-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0djmgc0pfli0jilfx8hql1axhwhqxqb8rxg2r5rg07aw73sfs5nx"))))
+    (build-system gnu-build-system)
+    (native-inputs `(("perl", perl)))
+    (home-page "http://hmmer.janelia.org")
+    (synopsis "Biosequence analysis using profile hidden Markov models")
+    (description
+     "HMMER is used for searching sequence databases for homologs of protein
+sequences, and for making protein sequence alignments.  It implements methods
+using probabilistic models called profile hidden Markov models (profile
+HMMs).")
+    (license (list license:gpl3+
+                   ;; The bundled library 'easel' is distributed
+                   ;; under The Janelia Farm Software License.
+                   (license: non-copyleft
+                             "file://easel/LICENSE"
+                             "See easel/LICENSE in the distribution.")))))
+
 (define-public htseq
   (package
     (name "htseq")
-- 
2.1.4


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

* Re: [PATCH] gnu: Add hmmer
  2015-06-24  1:37           ` Ben Woodcroft
@ 2015-06-24  1:48             ` Ben Woodcroft
  2015-06-24  1:52               ` Ben Woodcroft
  0 siblings, 1 reply; 10+ messages in thread
From: Ben Woodcroft @ 2015-06-24  1:48 UTC (permalink / raw)
  To: Ricardo Wurmus, Pjotr Prins; +Cc: guix-devel


On 24/06/15 11:37, Ben Woodcroft wrote:
> Thanks Mark, that's the only change in the attached patch, except that 
> "license:" is added too.
Actually I didn't, I'll send an updated patch soon after testing.

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

* Re: [PATCH] gnu: Add hmmer
  2015-06-24  1:48             ` Ben Woodcroft
@ 2015-06-24  1:52               ` Ben Woodcroft
  2015-06-24  4:41                 ` Mark H Weaver
  0 siblings, 1 reply; 10+ messages in thread
From: Ben Woodcroft @ 2015-06-24  1:52 UTC (permalink / raw)
  To: Ricardo Wurmus, Pjotr Prins; +Cc: guix-devel

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



On 24/06/15 11:48, Ben Woodcroft wrote:
>
> On 24/06/15 11:37, Ben Woodcroft wrote:
>> Thanks Mark, that's the only change in the attached patch, except 
>> that "license:" is added too.
> Actually I didn't, I'll send an updated patch soon after testing.
>
Attached, seems all good now. Apologies for sending too many mails about 
this.

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

From 936ad4f76bbb3825ab5c1623285756cf45f8d192 Mon Sep 17 00:00:00 2001
From: Ben Woodcroft <donttrustben@gmail.com>
Date: Wed, 24 Jun 2015 11:51:05 +1000
Subject: [PATCH] gnu: Add hmmer.

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

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 8dfaff3..c88c3ab 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -1032,6 +1032,35 @@ several alignment strategies enable effective alignment of RNA-seq reads, in
 particular, reads spanning multiple exons.")
     (license license:gpl3+)))
 
+(define-public hmmer
+  (package
+    (name "hmmer")
+    (version "3.1b2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "http://selab.janelia.org/software/hmmer"
+                    (version-prefix version 1) "/"
+                    version "/hmmer-" version ".tar.gz"))
+              (sha256
+               (base32
+                "0djmgc0pfli0jilfx8hql1axhwhqxqb8rxg2r5rg07aw73sfs5nx"))))
+    (build-system gnu-build-system)
+    (native-inputs `(("perl", perl)))
+    (home-page "http://hmmer.janelia.org")
+    (synopsis "Biosequence analysis using profile hidden Markov models")
+    (description
+     "HMMER is used for searching sequence databases for homologs of protein
+sequences, and for making protein sequence alignments.  It implements methods
+using probabilistic models called profile hidden Markov models (profile
+HMMs).")
+    (license (list license:gpl3+
+                   ;; The bundled library 'easel' is distributed
+                   ;; under The Janelia Farm Software License.
+                   (license:non-copyleft
+                    "file://easel/LICENSE"
+                    "See easel/LICENSE in the distribution.")))))
+
 (define-public htseq
   (package
     (name "htseq")
-- 
2.1.4


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

* Re: [PATCH] gnu: Add hmmer
  2015-06-24  1:52               ` Ben Woodcroft
@ 2015-06-24  4:41                 ` Mark H Weaver
  0 siblings, 0 replies; 10+ messages in thread
From: Mark H Weaver @ 2015-06-24  4:41 UTC (permalink / raw)
  To: Ben Woodcroft; +Cc: guix-devel

Ben Woodcroft <b.woodcroft@uq.edu.au> writes:
> Attached, seems all good now.

Pushed, thanks!

     Mark

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

end of thread, other threads:[~2015-06-24  4:41 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-06-21  8:52 [PATCH] gnu: Add hmmer Ben Woodcroft
2015-06-21  9:51 ` Ricardo Wurmus
2015-06-21 10:17   ` Ben Woodcroft
2015-06-21 17:17     ` Mark H Weaver
2015-06-21 18:11       ` Pjotr Prins
2015-06-21 18:23         ` Ricardo Wurmus
2015-06-24  1:37           ` Ben Woodcroft
2015-06-24  1:48             ` Ben Woodcroft
2015-06-24  1:52               ` Ben Woodcroft
2015-06-24  4:41                 ` Mark H Weaver

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).