all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* Bioinformatics package: Bless
@ 2015-11-05 19:49 Diane Trout
  2015-11-06 14:28 ` [PATCH] Add BLESS (was: Re: Bioinformatics package: Bless) Ricardo Wurmus
  0 siblings, 1 reply; 8+ messages in thread
From: Diane Trout @ 2015-11-05 19:49 UTC (permalink / raw)
  To: guix-devel

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

Hi,

One of our users asked me to install a package "bless" that required a newer 
version of MPI than Debian provides, so I thought I'd try to build a guix 
package as Guix actually has openmpi 1.8 packaged.

The software's home page is:
http://sourceforge.net/p/bless-ec/wiki/Home/

The source tarball has the GPL-3 LICENSE file, however it does also contain 
convenience copies of other source, and in my packaging I only spliced out one 
-- the pigz dependency.

Diane

[-- Attachment #2: bless.scm --]
[-- Type: text/x-scheme, Size: 2777 bytes --]

(define-module (gnu packages bioinformatics)
  #:use-module ((guix licenses) #:prefix license:)
  #:use-module (guix packages)
  #:use-module (guix utils)
  #:use-module (guix download)
  #:use-module (guix build-system gnu)
  #:use-module (guix build-system cmake)
  #:use-module (guix build-system trivial)
  #:use-module (gnu packages)
  #:use-module (gnu packages base)
  #:use-module (gnu packages boost)
  #:use-module (gnu packages compression)
  #:use-module (gnu packages mpi)
  #:use-module (gnu packages perl)
  #:use-module (srfi srfi-1))

(define-public bless
  (package
    (name "bless")
    (version "v1p02")
    (source (origin
              (method url-fetch)
              (uri (string-append "mirror://sourceforge/bless-ec/bless."
                                  version ".tgz"))
              (file-name (string-append name "." version ".tgz"))
              (sha256
               (base32
		"0rm0gw2s18dqwzzpl3c2x1z05ni2v0xz5dmfk3d33j6g4cgrlrdd"))
	      ))
    (build-system gnu-build-system)
    (native-inputs `(("perl" ,perl)
                     ("zlib" ,zlib)))
    (inputs `(("openmpi" ,openmpi)
	      ("pigz" ,pigz)))
    (arguments
     '(#:tests? #f ;no "check" target
       #:phases
       (alist-cons-after 'unpack 'unpack-tarballs
	  (lambda* (#:key inputs outputs #:allow-other-keys)
             (substitute* "Makefile"
	       (("-I ./zlib/install/include")
	         (string-append "-I " (assoc-ref inputs "zlib") "/include"))
               (("./zlib/install/lib/libz.a")
		(string-append (assoc-ref inputs "zlib") "/lib/libz.a"))
	       ((".(ZLIB) ") "")
	       (("cd pigz/pigz-2.3.3; make") "")
	       )
	     ;;(substitute* "define.hpp"
             ;;  (("pigz/pigz-2.3.3") (string-append (assoc-ref inputs "pigz")))
             ;;  (("kmc/bin") ".")
	     (substitute* "parse_args.cpp"
	       (("kmc_binary = .*")
		 (string-append "kmc_binary = \"" (assoc-ref outputs "out") "/bin/kmc\";"))
	       (("pigz_binary = .*")
		(string-append "pigz_binary = \"" (assoc-ref inputs "pigz") "/bin/pigz\";"))
	     )
 	     #t)
        (alist-replace
         'install
         (lambda* (#:key outputs #:allow-other-keys)
           (let ((bin (string-append (assoc-ref outputs "out") "/bin/")))
             (for-each (lambda (file)
                         (install-file file bin))
		       '("bless" "kmc/bin/kmc")
                       )))
	  
       (alist-delete 'configure %standard-phases)))))
    (home-page "http://sourceforge.net/projects/bless-ec/wiki/Home/")
    (synopsis "Bloom-filter-based Error Correction Tool for NGS reads")
    (description
     "Developed by ESCAD Group, Computational Comparative Genomics
Lab, and IMACT Group in university of Illinois at Urbana-Champaign")
    (license license:gpl3+))
  )

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

* [PATCH] Add BLESS (was: Re: Bioinformatics package: Bless)
  2015-11-05 19:49 Bioinformatics package: Bless Diane Trout
@ 2015-11-06 14:28 ` Ricardo Wurmus
  2015-11-06 15:12   ` [PATCH] Add BLESS Ludovic Courtès
                     ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Ricardo Wurmus @ 2015-11-06 14:28 UTC (permalink / raw)
  To: Diane Trout; +Cc: guix-devel

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

Hi,

> One of our users asked me to install a package "bless" that required a newer 
> version of MPI than Debian provides, so I thought I'd try to build a guix 
> package as Guix actually has openmpi 1.8 packaged.

Great!  Thank you for your contribution.

> The source tarball has the GPL-3 LICENSE file, however it does also contain 
> convenience copies of other source, and in my packaging I only spliced out one 
> -- the pigz dependency.

I have taken your recipe and removed more bundled sources in a snippet.
There’s still bundled stuff that we should get rid of, most importantly
kmc, which brings its own executables.

I also changed the description based on the paper; instead of patching
the Makefile I overwrite the make flags.

Attached is a patch.  Does this work for you?
What do others think about this patch?

~~ Ricardo


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-gnu-Add-BLESS.patch --]
[-- Type: text/x-patch, Size: 4658 bytes --]

From 11496448abe3717279d5b6a5d31eedae7a1dcc89 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <ricardo.wurmus@mdc-berlin.de>
Date: Fri, 6 Nov 2015 15:22:26 +0100
Subject: [PATCH] gnu: Add BLESS.

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

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index fbc1f4e..c28f833 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -44,6 +44,7 @@
   #:use-module (gnu packages linux)
   #:use-module (gnu packages machine-learning)
   #:use-module (gnu packages maths)
+  #:use-module (gnu packages mpi)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
@@ -524,6 +525,88 @@ confidence to have in an alignment.")
                    license:lgpl2.0+
                    license:asl2.0))))
 
+(define-public bless
+  (package
+    (name "bless")
+    (version "1p02")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://sourceforge/bless-ec/bless.v"
+                                  version ".tgz"))
+              (sha256
+               (base32
+		"0rm0gw2s18dqwzzpl3c2x1z05ni2v0xz5dmfk3d33j6g4cgrlrdd"))
+                            (modules '((guix build utils)))
+              (snippet
+               `(begin
+                  ;; Remove bundled boost, pigz, zlib, and .git directory
+                  ;; FIXME: also remove bundled sources for google-sparsehash,
+                  ;; murmurhash3, kmc once packaged.
+                  (delete-file-recursively "boost")
+                  (delete-file-recursively "pigz")
+                  (delete-file-recursively "zlib")
+                  (delete-file-recursively ".git")
+                  #t))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:tests? #f ;no "check" target
+       #:make-flags
+       (list (string-append "ZLIB="
+                            (assoc-ref %build-inputs "zlib")
+                            "/lib/libz.a")
+             (string-append "LDFLAGS="
+                            (string-join '("-lboost_filesystem"
+                                           "-lboost_system"
+                                           "-lboost_iostreams"
+                                           "-lz"
+                                           "-fopenmp"
+                                           "-std=c++11"))))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'do-not-build-bundled-pigz
+          (lambda* (#:key inputs outputs #:allow-other-keys)
+            (substitute* "Makefile"
+              (("cd pigz/pigz-2.3.3; make") ""))
+            #t))
+         (add-after 'unpack 'patch-paths-to-executables
+          (lambda* (#:key inputs outputs #:allow-other-keys)
+            (substitute* "parse_args.cpp"
+              (("kmc_binary = .*")
+               (string-append "kmc_binary = \""
+                              (assoc-ref outputs "out")
+                              "/bin/kmc\";"))
+              (("pigz_binary = .*")
+               (string-append "pigz_binary = \""
+                              (assoc-ref inputs "pigz")
+                              "/bin/pigz\";")))
+            #t))
+         (replace 'install
+          (lambda* (#:key outputs #:allow-other-keys)
+            (let ((bin (string-append (assoc-ref outputs "out") "/bin/")))
+              (for-each (lambda (file)
+                          (install-file file bin))
+                        '("bless" "kmc/bin/kmc"))
+              #t)))
+         (delete 'configure))))
+    (native-inputs
+     `(("perl" ,perl)))
+    (inputs
+     `(("openmpi" ,openmpi)
+       ("boost" ,boost)
+       ("pigz" ,pigz)
+       ("zlib" ,zlib)))
+    (home-page "http://sourceforge.net/projects/bless-ec/wiki/Home/")
+    (synopsis "Bloom-filter-based error correction tool for NGS reads")
+    (description
+     "@dfn{Bloom-filter-based error correction solution for high-throughput
+sequencing reads} (BLESS) uses a single minimum-sized Bloo  filter is a
+correction tool for genomic reads produced by @dfn{Next-generation
+sequencing} (NGS).  BLESS produces accurate correction results with much less
+memory compared with previous solutions and is also able to tolerate a higher
+false-positive rate.  BLESS can extend reads like DNA assemblers to correct
+errors at the end of reads.")
+    (license license:gpl3+)))
+
 (define-public bowtie
   (package
     (name "bowtie")
-- 
2.1.0


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

* Re: [PATCH] Add BLESS
  2015-11-06 14:28 ` [PATCH] Add BLESS (was: Re: Bioinformatics package: Bless) Ricardo Wurmus
@ 2015-11-06 15:12   ` Ludovic Courtès
  2015-11-06 17:22     ` Ricardo Wurmus
  2015-11-06 16:01   ` [PATCH] Add BLESS (was: Re: Bioinformatics package: Bless) Diane Trout
  2015-11-06 19:14   ` [PATCH] Add BLESS Alex Kost
  2 siblings, 1 reply; 8+ messages in thread
From: Ludovic Courtès @ 2015-11-06 15:12 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: guix-devel

Ricardo Wurmus <ricardo.wurmus@mdc-berlin.de> skribis:

> From 11496448abe3717279d5b6a5d31eedae7a1dcc89 Mon Sep 17 00:00:00 2001
> From: Ricardo Wurmus <ricardo.wurmus@mdc-berlin.de>
> Date: Fri, 6 Nov 2015 15:22:26 +0100
> Subject: [PATCH] gnu: Add BLESS.
>
> * gnu/packages/bioinformatics.scm (bless): New variable.

Probably you should add:

  Co-authored-by: Diane Trout <diane@ghic.org>

> +sequencing reads} (BLESS) uses a single minimum-sized Bloo  filter is a
                                                            ^^
Typo.

Otherwise LGTM, thanks to both of you!

Ludo’.

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

* Re: [PATCH] Add BLESS (was: Re: Bioinformatics package: Bless)
  2015-11-06 14:28 ` [PATCH] Add BLESS (was: Re: Bioinformatics package: Bless) Ricardo Wurmus
  2015-11-06 15:12   ` [PATCH] Add BLESS Ludovic Courtès
@ 2015-11-06 16:01   ` Diane Trout
  2015-11-06 19:14   ` [PATCH] Add BLESS Alex Kost
  2 siblings, 0 replies; 8+ messages in thread
From: Diane Trout @ 2015-11-06 16:01 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: guix-devel

That patch looks much nicer. Thank you.

Diane

On Friday, November 06, 2015 03:28:23 PM Ricardo Wurmus wrote:
> Hi,
> 
> > One of our users asked me to install a package "bless" that required a
> > newer version of MPI than Debian provides, so I thought I'd try to build
> > a guix package as Guix actually has openmpi 1.8 packaged.
> 
> Great!  Thank you for your contribution.
> 
> > The source tarball has the GPL-3 LICENSE file, however it does also
> > contain
> > convenience copies of other source, and in my packaging I only spliced out
> > one -- the pigz dependency.
> 
> I have taken your recipe and removed more bundled sources in a snippet.
> There’s still bundled stuff that we should get rid of, most importantly
> kmc, which brings its own executables.
> 
> I also changed the description based on the paper; instead of patching
> the Makefile I overwrite the make flags.
> 
> Attached is a patch.  Does this work for you?
> What do others think about this patch?
> 
> ~~ Ricardo

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

* Re: [PATCH] Add BLESS
  2015-11-06 15:12   ` [PATCH] Add BLESS Ludovic Courtès
@ 2015-11-06 17:22     ` Ricardo Wurmus
  0 siblings, 0 replies; 8+ messages in thread
From: Ricardo Wurmus @ 2015-11-06 17:22 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-devel


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

> Ricardo Wurmus <ricardo.wurmus@mdc-berlin.de> skribis:
>
>> From 11496448abe3717279d5b6a5d31eedae7a1dcc89 Mon Sep 17 00:00:00 2001
>> From: Ricardo Wurmus <ricardo.wurmus@mdc-berlin.de>
>> Date: Fri, 6 Nov 2015 15:22:26 +0100
>> Subject: [PATCH] gnu: Add BLESS.
>>
>> * gnu/packages/bioinformatics.scm (bless): New variable.
>
> Probably you should add:
>
>   Co-authored-by: Diane Trout <diane@ghic.org>
>
>> +sequencing reads} (BLESS) uses a single minimum-sized Bloo  filter is a
>                                                             ^^
> Typo.
>
> Otherwise LGTM, thanks to both of you!

Thanks for the review.  I pushed it after fixing the typo and adding the
attribution to the commit message.

~~ Ricardo

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

* Re: [PATCH] Add BLESS
  2015-11-06 14:28 ` [PATCH] Add BLESS (was: Re: Bioinformatics package: Bless) Ricardo Wurmus
  2015-11-06 15:12   ` [PATCH] Add BLESS Ludovic Courtès
  2015-11-06 16:01   ` [PATCH] Add BLESS (was: Re: Bioinformatics package: Bless) Diane Trout
@ 2015-11-06 19:14   ` Alex Kost
  2015-11-06 20:03     ` Ricardo Wurmus
  2 siblings, 1 reply; 8+ messages in thread
From: Alex Kost @ 2015-11-06 19:14 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: guix-devel

Ricardo Wurmus (2015-11-06 17:28 +0300) wrote:

[...]
> I have taken your recipe and removed more bundled sources in a snippet.
> There’s still bundled stuff that we should get rid of, most importantly
> kmc, which brings its own executables.
>
> I also changed the description based on the paper; instead of patching
> the Makefile I overwrite the make flags.
>
> Attached is a patch.  Does this work for you?
> What do others think about this patch?

Oops, too late for the comment, but still:

[...]
> +(define-public bless
> +  (package
> +    (name "bless")
> +    (version "1p02")
> +    (source (origin
> +              (method url-fetch)
> +              (uri (string-append "mirror://sourceforge/bless-ec/bless.v"
> +                                  version ".tgz"))
> +              (sha256
> +               (base32
> +		"0rm0gw2s18dqwzzpl3c2x1z05ni2v0xz5dmfk3d33j6g4cgrlrdd"))
tabulation ↑ here

> +                            (modules '((guix build utils)))
and wrong indentation ↑ here

-- 
Alex

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

* Re: [PATCH] Add BLESS
  2015-11-06 19:14   ` [PATCH] Add BLESS Alex Kost
@ 2015-11-06 20:03     ` Ricardo Wurmus
  2015-11-06 21:16       ` Ludovic Courtès
  0 siblings, 1 reply; 8+ messages in thread
From: Ricardo Wurmus @ 2015-11-06 20:03 UTC (permalink / raw)
  To: Alex Kost; +Cc: guix-devel


Alex Kost <alezost@gmail.com> writes:

> Ricardo Wurmus (2015-11-06 17:28 +0300) wrote:
>
> [...]
>> I have taken your recipe and removed more bundled sources in a snippet.
>> There’s still bundled stuff that we should get rid of, most importantly
>> kmc, which brings its own executables.
>>
>> I also changed the description based on the paper; instead of patching
>> the Makefile I overwrite the make flags.
>>
>> Attached is a patch.  Does this work for you?
>> What do others think about this patch?
>
> Oops, too late for the comment, but still:
>
> [...]
>> +(define-public bless
>> +  (package
>> +    (name "bless")
>> +    (version "1p02")
>> +    (source (origin
>> +              (method url-fetch)
>> +              (uri (string-append "mirror://sourceforge/bless-ec/bless.v"
>> +                                  version ".tgz"))
>> +              (sha256
>> +               (base32
>> +		"0rm0gw2s18dqwzzpl3c2x1z05ni2v0xz5dmfk3d33j6g4cgrlrdd"))
> tabulation ↑ here
>
>> +                            (modules '((guix build utils)))
> and wrong indentation ↑ here

Ah!  I didn’t see this.  (So embarrassing.)

In both cases it’s tabs.  I copied this whole expression from the
original attachment and it didn’t occur to me to check for tabs as it
looked just right in my Emacs.

What would the correct commit message be to fix this?  Will you fix
this?

~~ Ricardo

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

* Re: [PATCH] Add BLESS
  2015-11-06 20:03     ` Ricardo Wurmus
@ 2015-11-06 21:16       ` Ludovic Courtès
  0 siblings, 0 replies; 8+ messages in thread
From: Ludovic Courtès @ 2015-11-06 21:16 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: guix-devel, Alex Kost

Ricardo Wurmus <ricardo.wurmus@mdc-berlin.de> skribis:

> Alex Kost <alezost@gmail.com> writes:
>
>> Ricardo Wurmus (2015-11-06 17:28 +0300) wrote:
>>
>> [...]
>>> I have taken your recipe and removed more bundled sources in a snippet.
>>> There’s still bundled stuff that we should get rid of, most importantly
>>> kmc, which brings its own executables.
>>>
>>> I also changed the description based on the paper; instead of patching
>>> the Makefile I overwrite the make flags.
>>>
>>> Attached is a patch.  Does this work for you?
>>> What do others think about this patch?
>>
>> Oops, too late for the comment, but still:
>>
>> [...]
>>> +(define-public bless
>>> +  (package
>>> +    (name "bless")
>>> +    (version "1p02")
>>> +    (source (origin
>>> +              (method url-fetch)
>>> +              (uri (string-append "mirror://sourceforge/bless-ec/bless.v"
>>> +                                  version ".tgz"))
>>> +              (sha256
>>> +               (base32
>>> +		"0rm0gw2s18dqwzzpl3c2x1z05ni2v0xz5dmfk3d33j6g4cgrlrdd"))
>> tabulation ↑ here
>>
>>> +                            (modules '((guix build utils)))
>> and wrong indentation ↑ here
>
> Ah!  I didn’t see this.  (So embarrassing.)

Heheh.  :-)
‘guix lint’ should report tabs.

> What would the correct commit message be to fix this?  Will you fix
> this?

Whatever makes sense to you.

Ludo’.

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

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

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-11-05 19:49 Bioinformatics package: Bless Diane Trout
2015-11-06 14:28 ` [PATCH] Add BLESS (was: Re: Bioinformatics package: Bless) Ricardo Wurmus
2015-11-06 15:12   ` [PATCH] Add BLESS Ludovic Courtès
2015-11-06 17:22     ` Ricardo Wurmus
2015-11-06 16:01   ` [PATCH] Add BLESS (was: Re: Bioinformatics package: Bless) Diane Trout
2015-11-06 19:14   ` [PATCH] Add BLESS Alex Kost
2015-11-06 20:03     ` Ricardo Wurmus
2015-11-06 21:16       ` Ludovic Courtès

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.