unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* [PATCH] Add vcflib.
@ 2016-03-22 15:24 Roel Janssen
  2016-03-23 13:49 ` Ricardo Wurmus
                   ` (8 more replies)
  0 siblings, 9 replies; 30+ messages in thread
From: Roel Janssen @ 2016-03-22 15:24 UTC (permalink / raw)
  To: guix-devel

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

From dfc9b373bbce0f36882407cec47440a0a44c78d1 Mon Sep 17 00:00:00 2001
From: Roel Janssen <roel@gnu.org>
Date: Tue, 22 Mar 2016 14:59:05 +0100
Subject: [PATCH 1/8] gnu: Add tabixpp.

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

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 281bd1f..6792be9 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -4791,3 +4791,42 @@ negative binomial distribution to model the read counts among the samples in
 the same group, and look for consistent differences between ChIP and control
 group or two ChIP groups run under different conditions.")
     (license license:gpl3+)))
+
+(define-public tabixpp
+  (package
+   (name "tabixpp")
+   (version "1.0.0")
+   (source (origin
+     (method url-fetch)
+     (uri (string-append "https://github.com/ekg/tabixpp/archive/v"
+                         version ".tar.gz"))
+     (file-name (string-append name "-" version ".tar.gz"))
+     (sha256
+      (base32 "1s0lgks7qlvlhvcjhi2wm18nnza1bwcnic44ij7z8wfg88h4ivwn"))))
+   (build-system gnu-build-system)
+   (inputs
+    `(("htslib" ,htslib)
+      ("zlib" ,zlib)))
+   (arguments
+    `(#:tests? #f ; There are no tests to run.
+      #:phases
+      (modify-phases %standard-phases
+        (delete 'configure) ; There is no configure phase.
+        ;; Modify the build phase to use the separately packaged htslib.
+        (replace 'build
+          (lambda* (#:key inputs #:allow-other-keys)
+            (let ((htslib-ref (assoc-ref inputs "htslib")))
+              (zero?
+               (system* "make"
+                 (string-append "HTS_LIB=" htslib-ref "/lib/libhts.a")
+                 "HTS_HEADERS=" ; Do not check for local htslib headers.
+                 (string-append "LIBPATH=-L. -L" htslib-ref "/include"))))))
+        (replace 'install
+          (lambda* (#:key outputs #:allow-other-keys)
+            (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
+              (install-file "tabix++" bin)))))))
+   (home-page "https://github.com/ekg/tabixpp")
+   (synopsis "C++ wrapper around tabix project")
+   (description "This is a C++ wrapper around the Tabix project which abstracts
+some of the details of opening and jumping in tabix-indexed files.")
+   (license license:expat)))
-- 
2.5.5


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

From e75aa388931c92657336c8a15f88b6a0273f5e02 Mon Sep 17 00:00:00 2001
From: Roel Janssen <roel@gnu.org>
Date: Tue, 22 Mar 2016 15:01:37 +0100
Subject: [PATCH 2/8] gnu: Add smithwaterman.

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

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 6792be9..fa7ba24 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -4830,3 +4830,34 @@ group or two ChIP groups run under different conditions.")
    (description "This is a C++ wrapper around the Tabix project which abstracts
 some of the details of opening and jumping in tabix-indexed files.")
    (license license:expat)))
+
+(define-public smithwaterman
+  (let ((commit "203218b47d45ac56ef234716f1bd4c741b289be1"))
+    (package
+      (name "smithwaterman")
+      (version (string-append "0-1." (string-take commit 7)))
+      (source (origin
+        (method url-fetch)
+        (uri (string-append "https://github.com/ekg/smithwaterman/archive/"
+                            commit ".tar.gz"))
+        (file-name (string-append name "-" version "-checkout.tar.gz"))
+        (sha256
+         (base32 "1lkxy4xkjn96l70jdbsrlm687jhisgw4il0xr2dm33qwcclzzm3b"))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:tests? #f ; There are no tests to run.
+         #:phases
+         (modify-phases %standard-phases
+           (delete 'configure) ; There is no configure phase.
+           (replace 'install
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
+                 (install-file "smithwaterman" bin)))))))
+      (home-page "https://github.com/ekg/smithwaterman")
+      (synopsis "Implementation of the Smith-Waterman algorithm")
+      (description "This package provides an implementation of the Smith-Waterman
+algorithm.")
+      ;; libdisorder is licensed GPLv2.  The parent project (vcflib), of which
+      ;; this program is a submodule, is licensed MIT, which is the same as
+      ;; the Expat license.
+      (license (list license:gpl2 license:expat)))))
-- 
2.5.5


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #3: 0003-gnu-Add-multichoose.patch --]
[-- Type: text/x-patch, Size: 2217 bytes --]

From edcf3132dca6c3e86439710892870285377adbb2 Mon Sep 17 00:00:00 2001
From: Roel Janssen <roel@gnu.org>
Date: Tue, 22 Mar 2016 15:07:47 +0100
Subject: [PATCH 3/8] gnu: Add multichoose.

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

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index fa7ba24..9465d56 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -4861,3 +4861,38 @@ algorithm.")
       ;; this program is a submodule, is licensed MIT, which is the same as
       ;; the Expat license.
       (license (list license:gpl2 license:expat)))))
+
+(define-public multichoose
+  (package
+    (name "multichoose")
+    (version "1.0.3")
+    (source (origin
+      (method url-fetch)
+      (uri (string-append "https://github.com/ekg/multichoose/archive/v"
+                          version ".tar.gz"))
+      (file-name (string-append name "-" version ".tar.gz"))
+      (sha256
+       (base32 "0xy86vvr3qrs4l81qis7ia1q2hnqv0xcb4a1n60smxbhqqis5w3l"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("python" ,python-2)
+       ("node" ,node)))
+    (arguments
+     `(#:tests? #f ; There are no tests to run.
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure) ; There is no configure phase.
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
+               (install-file "multichoose" bin)
+               (install-file "multipermute" bin)))))))
+    (home-page "https://github.com/ekg/multichoose")
+    (synopsis "Library for efficient loopless multiset combination generation
+algorithm")
+    (description "A library implements an efficient loopless multiset
+combination generation algorithm which is (approximately) described in
+\"Loopless algorithms for generating permutations, combinations, and other
+combinatorial configurations.\" G Ehrlich - Journal of the ACM (JACM),
+1973. (Algorithm 7.)")
+    (license license:expat)))
-- 
2.5.5


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #4: 0004-gnu-Add-fsom.patch --]
[-- Type: text/x-patch, Size: 1977 bytes --]

From ec8d80b1be2d4271b6a1583a1c1a6264d37ccbeb Mon Sep 17 00:00:00 2001
From: Roel Janssen <roel@gnu.org>
Date: Tue, 22 Mar 2016 15:10:53 +0100
Subject: [PATCH 4/8] gnu: Add fsom.

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

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 9465d56..0abccbc 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -4896,3 +4896,30 @@ combination generation algorithm which is (approximately) described in
 combinatorial configurations.\" G Ehrlich - Journal of the ACM (JACM),
 1973. (Algorithm 7.)")
     (license license:expat)))
+
+(define-public fsom
+  (let ((commit "a6ef318fbd347c53189384aef7f670c0e6ce89a3"))
+    (package
+      (name "fsom")
+      (version (string-append "0-1." (string-take commit 7)))
+      (source (origin
+        (method url-fetch)
+        (uri (string-append "https://github.com/ekg/fsom/archive/"
+                            commit ".tar.gz"))
+        (file-name (string-append name "-" version "-checkout.tar.gz"))
+        (sha256
+         (base32 "0q6b57ppxfvsm5cqmmbfmjpn5qvx2zi5pamvp3yh8gpmmz8cfbl3"))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:tests? #f ; There are no tests to run.
+         #:phases
+         (modify-phases %standard-phases
+           (delete 'configure) ; There is no configure phase.
+           (replace 'install
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
+                 (install-file "fsom" bin)))))))
+      (home-page "https://github.com/ekg/fsom")
+      (synopsis "Program for managing SOM (Self-Organizing Maps) neural networks")
+      (description "Program for managing SOM (Self-Organizing Maps) neural networks.")
+      (license license:gpl3))))
-- 
2.5.5


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #5: 0005-gnu-Add-filevercmp.patch --]
[-- Type: text/x-patch, Size: 2064 bytes --]

From f0cb8c476e902e3351988f7c278b3682837c8cce Mon Sep 17 00:00:00 2001
From: Roel Janssen <roel@gnu.org>
Date: Tue, 22 Mar 2016 15:47:06 +0100
Subject: [PATCH 5/8] gnu: Add filevercmp.

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

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 0abccbc..261660f 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -4923,3 +4923,31 @@ combinatorial configurations.\" G Ehrlich - Journal of the ACM (JACM),
       (synopsis "Program for managing SOM (Self-Organizing Maps) neural networks")
       (description "Program for managing SOM (Self-Organizing Maps) neural networks.")
       (license license:gpl3))))
+
+(define-public filevercmp
+  (let ((commit "1a9b779b93d0b244040274794d402106907b71b7"))
+    (package
+      (name "filevercmp")
+      (version (string-append "0-1." (string-take commit 7)))
+      (source (origin
+        (method url-fetch)
+        (uri (string-append "https://github.com/ekg/filevercmp/archive/"
+                            commit ".tar.gz"))
+        (file-name "filevercmp-src.tar.gz")
+        (sha256
+         (base32 "0yp5jswf5j2pqc6517x277s4s6h1ss99v57kxw9gy0jkfl3yh450"))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:tests? #f ; There are no tests to run.
+         #:phases
+         (modify-phases %standard-phases
+           (delete 'configure) ; There is no configure phase.
+           (replace 'install
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
+                 (install-file "filevercmp" bin)))))))
+      (home-page "https://github.com/ekg/filevercmp")
+      (synopsis "Program to compare version strings")
+      (description "A program to compare version strings.  It intends to be a
+replacement for strverscmp.")
+      (license license:gpl3+))))
-- 
2.5.5


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #6: 0006-gnu-Add-fastahack.patch --]
[-- Type: text/x-patch, Size: 2531 bytes --]

From c934cee6c84a39de36ecb4c3a85340ff025b1343 Mon Sep 17 00:00:00 2001
From: Roel Janssen <roel@gnu.org>
Date: Tue, 22 Mar 2016 15:50:12 +0100
Subject: [PATCH 6/8] gnu: Add fastahack.

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

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 261660f..9cbde46 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -4951,3 +4951,37 @@ combinatorial configurations.\" G Ehrlich - Journal of the ACM (JACM),
       (description "A program to compare version strings.  It intends to be a
 replacement for strverscmp.")
       (license license:gpl3+))))
+
+(define-public fastahack
+  (let ((commit "c68cebb4f2e5d5d2b70cf08fbdf1944e9ab2c2dd"))
+    (package
+      (name "fastahack")
+      (version (string-append "0-1." (string-take commit 7)))
+      (source (origin
+        (method url-fetch)
+        (uri (string-append "https://github.com/ekg/fastahack/archive/"
+                            commit ".tar.gz"))
+        (file-name (string-append name "-" version "-checkout.tar.gz"))
+        (sha256
+         (base32 "0j25lcl3jk1kls66zzxjfyq5ir6sfcvqrdwfcva61y3ajc9ssay2"))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:tests? #f ; There are no tests to run.
+         #:phases
+         (modify-phases %standard-phases
+           (delete 'configure) ; There is no configure phase.
+           (replace 'install
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
+                 (install-file "fastahack" bin)))))))
+      (home-page "https://github.com/ekg/fastahack")
+      (synopsis "Program for indexing and sequence extraction from FASTA files")
+      (description "Fastahack is a small application for indexing and extracting
+sequences and subsequences from FASTA files.  The included Fasta.cpp library
+provides a FASTA reader and indexer that can be embeddedinto applications which
+would benefit from directly reading subsequences from FASTA files.  The library
+automatically handles index file generation and use.")
+      ;; libdisorder is licensed GPLv2.  The parent project (vcflib), of which
+      ;; this program is a submodule, is licensed MIT, which is the same as
+      ;; the Expat license.
+      (license (list license:gpl2 license:expat)))))
-- 
2.5.5


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #7: 0007-gnu-Add-intervaltree.patch --]
[-- Type: text/x-patch, Size: 2225 bytes --]

From 3ed14719121a952fca48a8ad3426588ebb58a130 Mon Sep 17 00:00:00 2001
From: Roel Janssen <roel@gnu.org>
Date: Tue, 22 Mar 2016 15:57:33 +0100
Subject: [PATCH 7/8] gnu: Add intervaltree.

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

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 9cbde46..5a0eb16 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -4985,3 +4985,35 @@ automatically handles index file generation and use.")
       ;; this program is a submodule, is licensed MIT, which is the same as
       ;; the Expat license.
       (license (list license:gpl2 license:expat)))))
+
+(define-public intervaltree
+  (let ((commit "dbb4c513d1ad3baac516fc1484c995daf9b42838"))
+    (package
+      (name "intervaltree")
+      (version (string-append "0-1." (string-take commit 7)))
+      (source (origin
+        (method url-fetch)
+        (uri (string-append
+              "https://github.com/ekg/intervaltree/archive/" commit ".tar.gz"))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32 "19prwpn2wxsrijp5svfqvfcxl5nj7zdhm3jycd5kqhl9nifpmcks"))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           (delete 'configure) ; There is no configure phase.
+           (replace 'check
+             (lambda _
+                (zero? (system* "./interval_tree_test"))))
+           (replace 'install
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let ((include (string-append (assoc-ref outputs "out")
+                                             "/include/intervaltree")))
+                 (install-file "IntervalTree.h" include)))))))
+      (home-page "https://github.com/ekg/intervaltree/")
+      (synopsis "Minimal C++ interval tree implementation")
+      (description "This library provides a basic implementation of an interval
+tree using C++ templates, allowing the insertion of arbitrary types into the
+tree.")
+      (license license:expat))))
-- 
2.5.5


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #8: 0008-gnu-Add-vcflib.patch --]
[-- Type: text/x-patch, Size: 5610 bytes --]

From 07f041559f7f023c56c23f81ac7e90441c44f91b Mon Sep 17 00:00:00 2001
From: Roel Janssen <roel@gnu.org>
Date: Tue, 22 Mar 2016 16:06:45 +0100
Subject: [PATCH 8/8] gnu: Add vcflib.

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

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 5a0eb16..34aadab 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -4831,6 +4831,22 @@ group or two ChIP groups run under different conditions.")
 some of the details of opening and jumping in tabix-indexed files.")
    (license license:expat)))
 
+;; This version works with FreeBayes while the released version doesn't. The
+;; release creates a variable with the name "vcf" somewhere, which is also the
+;; name of a namespace in vcflib.
+(define-public tabixpp-vcflib
+  (let ((commit "bbc63a49acc52212199f92e9e3b8fba0a593e3f7"))
+    (package (inherit tabixpp)
+      (name "tabixpp-vcflib")
+      (version (string-append "0-1." (string-take commit 7)))
+      (source (origin
+        (method url-fetch)
+        (uri (string-append "https://github.com/ekg/tabixpp/archive/"
+                            commit ".tar.gz"))
+        (file-name (string-append name "-" version "-checkout.tar.gz"))
+        (sha256
+         (base32 "1s06wmpgj4my4pik5kp2lc42hzzazbp5ism2y4i2ajp2y1c68g77")))))))
+
 (define-public smithwaterman
   (let ((commit "203218b47d45ac56ef234716f1bd4c741b289be1"))
     (package
@@ -5017,4 +5033,82 @@ automatically handles index file generation and use.")
 tree using C++ templates, allowing the insertion of arbitrary types into the
 tree.")
       (license license:expat))))
+
+(define-public vcflib
+  (let ((commit "5ac091365fdc716cc47cc5410bb97ee5dc2a2c92"))
+    (package
+      (name "vcflib")
+      (version (string-append "0-1." (string-take commit 7)))
+      (source (origin
+         (method url-fetch)
+         (uri (string-append "https://github.com/vcflib/vcflib/archive/"
+                commit ".tar.gz"))
+         (file-name (string-append name "-" version ".tar.gz"))
+         (sha256
+          (base32 "0ywshwpif059z5h0g7zzrdfzzdj2gr8xvwlwcsdxrms3p9iy35h8"))))
+      (build-system gnu-build-system)
+      (inputs
+       `(("intervaltree" ,intervaltree)
+         ("htslib" ,htslib)
+         ("zlib" ,zlib)))
+      (native-inputs
+       `(("python" ,python-2)
+         ("perl" ,perl)
+         ("r" ,r)
+         ("node" ,node)
+         ("tabixpp-src" ,(package-source tabixpp-vcflib))
+         ("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))))
+      (arguments
+       `(#:tests? #f ; There are no tests to run.
+         #: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
+                                 (zero? (system* "tar" "xvf"
+                                        (assoc-ref inputs source)
+                                        "--strip-components=1"))))))
+                 (and
+                  (unpack "fastahack-src" "fastahack")
+                  (unpack "filevercmp-src" "filevercmp")
+                  (unpack "fsom-src" "fsom")
+                  (unpack "multichoose-src" "multichoose")
+                  (unpack "smithwaterman-src" "smithwaterman")
+                  (unpack "tabixpp-src" "tabixpp")))))
+           (add-after 'unpack-submodule-sources 'fix-makefile
+             (lambda* (#:key inputs #:allow-other-keys)
+               (substitute* '("Makefile")
+                 (("^GIT_VERSION.*") "GIT_VERSION = v1.0.0"))))
+           (replace 'build
+            (lambda* (#:key inputs make-flags #:allow-other-keys)
+              (with-directory-excursion "tabixpp"
+                (zero? (system* "make")))
+              (zero? (system* "make" "CC=gcc"
+                (string-append
+                  "CFLAGS=\"" "-Itabixpp "
+                  "-I" (assoc-ref inputs "htslib") "/include "
+                  "-I" (assoc-ref inputs "intervaltree") "/include "
+                  "\"") "all"))))
+           (replace 'install
+            (lambda* (#:key outputs #:allow-other-keys)
+              (let* ((out (assoc-ref outputs "out"))
+                     (bin (string-append out "/bin"))
+                     (lib (string-append out "/lib")))
+                (for-each (lambda (file)
+                            (install-file file bin))
+                          (find-files "bin" ".*"))
+                (install-file "libvcflib.a" lib)))))))
+      (home-page "https://github.com/vcflib/vcflib/")
+      (synopsis "Library for parsing and manipulating VCF files")
+      (description "Vcflib provides methods to manipulate and interpret
+sequence variation as it can be described by VCF. It is both an API for parsing
+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))))
-- 
2.5.5


[-- Attachment #9: Type: text/plain, Size: 1033 bytes --]

Dear Guix,

In an effort to package freebayes, I would first like to add vcflib and
its dependencies.  Therefore, I have attached eight patches.

I've attempted to decouple the dependencies from vcflib, which worked
for intervaltree and htslib.  The following dependencies are actually
tightly coupled in the build process:
- tabixpp
- smithwaterman
- multichoose
- fsom
- filevercmp
- fastahack

To decouple these, we would need to include header files in the package
output that aren't part of the public interface.  In addition to that,
we would need to patch the build system to not look for <object>.o, but
instead add the right directives to the linker.

I don't think that is the desirable approach, because that would cause
these packages to provide header files that should only be used
internally.  Therefore, I use the source of these packages in vcflib,
and unpack them in the vcflib project root, to avoid confusion on
interfaces and fiddling with the build system.

Thank you for your time.

Kind regards,
Roel Janssen

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

* Re: [PATCH] Add vcflib.
  2016-03-22 15:24 [PATCH] Add vcflib Roel Janssen
@ 2016-03-23 13:49 ` Ricardo Wurmus
  2016-04-20 12:39   ` Roel Janssen
  2016-04-20 12:46 ` Ricardo Wurmus
                   ` (7 subsequent siblings)
  8 siblings, 1 reply; 30+ messages in thread
From: Ricardo Wurmus @ 2016-03-23 13:49 UTC (permalink / raw)
  To: Roel Janssen; +Cc: guix-devel


Roel Janssen <roel@gnu.org> writes:

> Dear Guix,
>
> In an effort to package freebayes, I would first like to add vcflib and
> its dependencies.  Therefore, I have attached eight patches.
>
> I've attempted to decouple the dependencies from vcflib, which worked
> for intervaltree and htslib.  The following dependencies are actually
> tightly coupled in the build process:
> - tabixpp
> - smithwaterman
> - multichoose
> - fsom
> - filevercmp
> - fastahack

Thank you for your efforts!

> To decouple these, we would need to include header files in the package
> output that aren't part of the public interface.  In addition to that,
> we would need to patch the build system to not look for <object>.o, but
> instead add the right directives to the linker.

I see what you mean.  This is ugly, but there isn’t much you can do
about this.  I’ve encountered many packages that do the same (some of
which also involve tabix), and in the case of “libvcflib.a” it really
does seem very hard to untangle dependencies further.

“filevercmp” and “fsom” don’t install libraries at all and apparently
are supposed to be included in other code.

> I don't think that is the desirable approach, because that would cause
> these packages to provide header files that should only be used
> internally.  Therefore, I use the source of these packages in vcflib,
> and unpack them in the vcflib project root, to avoid confusion on
> interfaces and fiddling with the build system.

This seems acceptable to me.  I haven’t yet looked at your patches, but
the justification you give is valid; I looked at the Makefiles of vcflib
and included projects and I think this is okay.

~~ Ricardo

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

* Re: [PATCH] Add vcflib.
  2016-03-23 13:49 ` Ricardo Wurmus
@ 2016-04-20 12:39   ` Roel Janssen
  0 siblings, 0 replies; 30+ messages in thread
From: Roel Janssen @ 2016-04-20 12:39 UTC (permalink / raw)
  To: guix-devel

Dear reviewers,

Can I make the review process easier by posting the patches in separate
threads?

Thanks!

Kind regards,
Roel Janssen


Ricardo Wurmus writes:

> Roel Janssen <roel@gnu.org> writes:
>
>> Dear Guix,
>>
>> In an effort to package freebayes, I would first like to add vcflib and
>> its dependencies.  Therefore, I have attached eight patches.
>>
>> I've attempted to decouple the dependencies from vcflib, which worked
>> for intervaltree and htslib.  The following dependencies are actually
>> tightly coupled in the build process:
>> - tabixpp
>> - smithwaterman
>> - multichoose
>> - fsom
>> - filevercmp
>> - fastahack
>
> Thank you for your efforts!
>
>> To decouple these, we would need to include header files in the package
>> output that aren't part of the public interface.  In addition to that,
>> we would need to patch the build system to not look for <object>.o, but
>> instead add the right directives to the linker.
>
> I see what you mean.  This is ugly, but there isn’t much you can do
> about this.  I’ve encountered many packages that do the same (some of
> which also involve tabix), and in the case of “libvcflib.a” it really
> does seem very hard to untangle dependencies further.
>
> “filevercmp” and “fsom” don’t install libraries at all and apparently
> are supposed to be included in other code.
>
>> I don't think that is the desirable approach, because that would cause
>> these packages to provide header files that should only be used
>> internally.  Therefore, I use the source of these packages in vcflib,
>> and unpack them in the vcflib project root, to avoid confusion on
>> interfaces and fiddling with the build system.
>
> This seems acceptable to me.  I haven’t yet looked at your patches, but
> the justification you give is valid; I looked at the Makefiles of vcflib
> and included projects and I think this is okay.
>
> ~~ Ricardo

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

* Re: [PATCH] Add vcflib.
  2016-03-22 15:24 [PATCH] Add vcflib Roel Janssen
  2016-03-23 13:49 ` Ricardo Wurmus
@ 2016-04-20 12:46 ` Ricardo Wurmus
  2016-04-22  7:24   ` Roel Janssen
  2016-04-20 12:49 ` Ricardo Wurmus
                   ` (6 subsequent siblings)
  8 siblings, 1 reply; 30+ messages in thread
From: Ricardo Wurmus @ 2016-04-20 12:46 UTC (permalink / raw)
  To: Roel Janssen; +Cc: guix-devel


Roel Janssen <roel@gnu.org> writes:
> From dfc9b373bbce0f36882407cec47440a0a44c78d1 Mon Sep 17 00:00:00 2001
> From: Roel Janssen <roel@gnu.org>
> Date: Tue, 22 Mar 2016 14:59:05 +0100
> Subject: [PATCH 1/8] gnu: Add tabixpp.

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

> diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
> index 281bd1f..6792be9 100644
> --- a/gnu/packages/bioinformatics.scm
> +++ b/gnu/packages/bioinformatics.scm
> @@ -4791,3 +4791,42 @@ negative binomial distribution to model the read counts among the samples in
>  the same group, and look for consistent differences between ChIP and control
>  group or two ChIP groups run under different conditions.")
>      (license license:gpl3+)))
> +
> +(define-public tabixpp
> +  (package
> +   (name "tabixpp")
> +   (version "1.0.0")
> +   (source (origin
> +     (method url-fetch)
> +     (uri (string-append "https://github.com/ekg/tabixpp/archive/v"
> +                         version ".tar.gz"))
> +     (file-name (string-append name "-" version ".tar.gz"))
> +     (sha256
> +      (base32 "1s0lgks7qlvlhvcjhi2wm18nnza1bwcnic44ij7z8wfg88h4ivwn"))))
> +   (build-system gnu-build-system)
> +   (inputs
> +    `(("htslib" ,htslib)
> +      ("zlib" ,zlib)))
> +   (arguments
> +    `(#:tests? #f ; There are no tests to run.
> +      #:phases
> +      (modify-phases %standard-phases
> +        (delete 'configure) ; There is no configure phase.
> +        ;; Modify the build phase to use the separately packaged htslib.
> +        (replace 'build
> +          (lambda* (#:key inputs #:allow-other-keys)
> +            (let ((htslib-ref (assoc-ref inputs "htslib")))
> +              (zero?
> +               (system* "make"
> +                 (string-append "HTS_LIB=" htslib-ref "/lib/libhts.a")
> +                 "HTS_HEADERS=" ; Do not check for local htslib headers.
> +                 (string-append "LIBPATH=-L. -L" htslib-ref
> "/include"))))))

Is this really necessary or could you use make-flags instead?  That
would be the preferred way of doing this rather than replacing the build
phase.

> +        (replace 'install
> +          (lambda* (#:key outputs #:allow-other-keys)
> +            (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
> +              (install-file "tabix++" bin)))))))
> +   (home-page "https://github.com/ekg/tabixpp")
> +   (synopsis "C++ wrapper around tabix project")

“tabix” or “Tabix”?

> +   (description "This is a C++ wrapper around the Tabix project which abstracts
> +some of the details of opening and jumping in tabix-indexed files.")
> +   (license license:expat)))

“tabix” or “Tabix”?

Could you please send an updated patch?

~~ Ricardo

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

* Re: [PATCH] Add vcflib.
  2016-03-22 15:24 [PATCH] Add vcflib Roel Janssen
  2016-03-23 13:49 ` Ricardo Wurmus
  2016-04-20 12:46 ` Ricardo Wurmus
@ 2016-04-20 12:49 ` Ricardo Wurmus
  2016-04-26 21:50   ` Roel Janssen
  2016-04-20 12:53 ` Ricardo Wurmus
                   ` (5 subsequent siblings)
  8 siblings, 1 reply; 30+ messages in thread
From: Ricardo Wurmus @ 2016-04-20 12:49 UTC (permalink / raw)
  To: Roel Janssen; +Cc: guix-devel


Roel Janssen <roel@gnu.org> writes:

> From e75aa388931c92657336c8a15f88b6a0273f5e02 Mon Sep 17 00:00:00 2001
> From: Roel Janssen <roel@gnu.org>
> Date: Tue, 22 Mar 2016 15:01:37 +0100
> Subject: [PATCH 2/8] gnu: Add smithwaterman.

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

> diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
> index 6792be9..fa7ba24 100644
> --- a/gnu/packages/bioinformatics.scm
> +++ b/gnu/packages/bioinformatics.scm
> @@ -4830,3 +4830,34 @@ group or two ChIP groups run under different conditions.")
>     (description "This is a C++ wrapper around the Tabix project which abstracts
>  some of the details of opening and jumping in tabix-indexed files.")
>     (license license:expat)))
> +
> +(define-public smithwaterman
> +  (let ((commit "203218b47d45ac56ef234716f1bd4c741b289be1"))

As there have been new commits since you posted this patch could you add
a comment that explains why it should be this particular commit?  Is it
because this is the version of the submodule of vcflib?

> +    (package
> +      (name "smithwaterman")
> +      (version (string-append "0-1." (string-take commit 7)))
> +      (source (origin
> +        (method url-fetch)
> +        (uri (string-append "https://github.com/ekg/smithwaterman/archive/"
> +                            commit ".tar.gz"))
> +        (file-name (string-append name "-" version "-checkout.tar.gz"))
> +        (sha256
> +         (base32 "1lkxy4xkjn96l70jdbsrlm687jhisgw4il0xr2dm33qwcclzzm3b"))))
> +      (build-system gnu-build-system)
> +      (arguments
> +       `(#:tests? #f ; There are no tests to run.
> +         #:phases
> +         (modify-phases %standard-phases
> +           (delete 'configure) ; There is no configure phase.
> +           (replace 'install
> +             (lambda* (#:key outputs #:allow-other-keys)
> +               (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
> +                 (install-file "smithwaterman" bin)))))))
> +      (home-page "https://github.com/ekg/smithwaterman")
> +      (synopsis "Implementation of the Smith-Waterman algorithm")
> +      (description "This package provides an implementation of the Smith-Waterman
> +algorithm.")
> +      ;; libdisorder is licensed GPLv2.  The parent project (vcflib), of which
> +      ;; this program is a submodule, is licensed MIT, which is the same as
> +      ;; the Expat license.
> +      (license (list license:gpl2 license:expat)))))

As far as I can see the license is GPLv2+ as it doesn’t specifically
restricts users to version 2.

The license of the parent project doesn’t matter in this case, so
“(license license:gpl2+)” would seem to be enough.

~~ Ricardo

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

* Re: [PATCH] Add vcflib.
  2016-03-22 15:24 [PATCH] Add vcflib Roel Janssen
                   ` (2 preceding siblings ...)
  2016-04-20 12:49 ` Ricardo Wurmus
@ 2016-04-20 12:53 ` Ricardo Wurmus
  2016-04-22  7:40   ` Roel Janssen
  2016-04-20 12:56 ` Ricardo Wurmus
                   ` (4 subsequent siblings)
  8 siblings, 1 reply; 30+ messages in thread
From: Ricardo Wurmus @ 2016-04-20 12:53 UTC (permalink / raw)
  To: Roel Janssen; +Cc: guix-devel


Roel Janssen <roel@gnu.org> writes:

> From edcf3132dca6c3e86439710892870285377adbb2 Mon Sep 17 00:00:00 2001
> From: Roel Janssen <roel@gnu.org>
> Date: Tue, 22 Mar 2016 15:07:47 +0100
> Subject: [PATCH 3/8] gnu: Add multichoose.

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

> diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
> index fa7ba24..9465d56 100644
> --- a/gnu/packages/bioinformatics.scm
> +++ b/gnu/packages/bioinformatics.scm
> @@ -4861,3 +4861,38 @@ algorithm.")
>        ;; this program is a submodule, is licensed MIT, which is the same as
>        ;; the Expat license.
>        (license (list license:gpl2 license:expat)))))
> +
> +(define-public multichoose
> +  (package
> +    (name "multichoose")
> +    (version "1.0.3")
> +    (source (origin
> +      (method url-fetch)
> +      (uri (string-append "https://github.com/ekg/multichoose/archive/v"
> +                          version ".tar.gz"))
> +      (file-name (string-append name "-" version ".tar.gz"))
> +      (sha256
> +       (base32 "0xy86vvr3qrs4l81qis7ia1q2hnqv0xcb4a1n60smxbhqqis5w3l"))))
> +    (build-system gnu-build-system)
> +    (native-inputs
> +     `(("python" ,python-2)
> +       ("node" ,node)))
> +    (arguments
> +     `(#:tests? #f ; There are no tests to run.
> +       #:phases
> +       (modify-phases %standard-phases
> +         (delete 'configure) ; There is no configure phase.
> +         (replace 'install
> +           (lambda* (#:key outputs #:allow-other-keys)
> +             (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
> +               (install-file "multichoose" bin)
> +               (install-file "multipermute" bin)))))))

Nitpick: normally, we place the arguments right below the
“build-system”.  The “native-inputs” then follow after “arguments”.

> +    (home-page "https://github.com/ekg/multichoose")
> +    (synopsis "Library for efficient loopless multiset combination generation
> +algorithm")

This synopsis is a bit long.  Maybe drop “efficient”?  (Most projects
include “efficient” or “fast” in their descriptions, so it isn’t very
useful in a synopsis.)

> +    (description "A library implements an efficient loopless multiset
> +combination generation algorithm which is (approximately) described in
> +\"Loopless algorithms for generating permutations, combinations, and other
> +combinatorial configurations.\" G Ehrlich - Journal of the ACM (JACM),
> +1973. (Algorithm 7.)")

“A library”?  How about “This package provides a library implementing...”

> +    (license license:expat)))

~~ Ricardo

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

* Re: [PATCH] Add vcflib.
  2016-03-22 15:24 [PATCH] Add vcflib Roel Janssen
                   ` (3 preceding siblings ...)
  2016-04-20 12:53 ` Ricardo Wurmus
@ 2016-04-20 12:56 ` Ricardo Wurmus
  2016-04-20 12:58 ` Ricardo Wurmus
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 30+ messages in thread
From: Ricardo Wurmus @ 2016-04-20 12:56 UTC (permalink / raw)
  To: Roel Janssen; +Cc: guix-devel


Roel Janssen <roel@gnu.org> writes:

> From ec8d80b1be2d4271b6a1583a1c1a6264d37ccbeb Mon Sep 17 00:00:00 2001
> From: Roel Janssen <roel@gnu.org>
> Date: Tue, 22 Mar 2016 15:10:53 +0100
> Subject: [PATCH 4/8] gnu: Add fsom.

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

> diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
> index 9465d56..0abccbc 100644
> --- a/gnu/packages/bioinformatics.scm
> +++ b/gnu/packages/bioinformatics.scm
> @@ -4896,3 +4896,30 @@ combination generation algorithm which is (approximately) described in
>  combinatorial configurations.\" G Ehrlich - Journal of the ACM (JACM),
>  1973. (Algorithm 7.)")
>      (license license:expat)))
> +
> +(define-public fsom
> +  (let ((commit "a6ef318fbd347c53189384aef7f670c0e6ce89a3"))
> +    (package
> +      (name "fsom")
> +      (version (string-append "0-1." (string-take commit 7)))
> +      (source (origin
> +        (method url-fetch)
> +        (uri (string-append "https://github.com/ekg/fsom/archive/"
> +                            commit ".tar.gz"))
> +        (file-name (string-append name "-" version "-checkout.tar.gz"))
> +        (sha256
> +         (base32 "0q6b57ppxfvsm5cqmmbfmjpn5qvx2zi5pamvp3yh8gpmmz8cfbl3"))))
> +      (build-system gnu-build-system)
> +      (arguments
> +       `(#:tests? #f ; There are no tests to run.
> +         #:phases
> +         (modify-phases %standard-phases
> +           (delete 'configure) ; There is no configure phase.
> +           (replace 'install
> +             (lambda* (#:key outputs #:allow-other-keys)
> +               (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
> +                 (install-file "fsom" bin)))))))
> +      (home-page "https://github.com/ekg/fsom")
> +      (synopsis "Program for managing SOM (Self-Organizing Maps)
> neural networks")

This is a bit long.  I’d drop the abbreviation and its expansion.  Is
this a program or a library?

> +      (description "Program for managing SOM (Self-Organizing Maps)
> neural networks.")

Could you please turn this into a full sentence?

> +      (license license:gpl3))))

Looks right.  “fsom.c” says “License: GNU GPL v.3”.

~~ Ricardo

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

* Re: [PATCH] Add vcflib.
  2016-03-22 15:24 [PATCH] Add vcflib Roel Janssen
                   ` (4 preceding siblings ...)
  2016-04-20 12:56 ` Ricardo Wurmus
@ 2016-04-20 12:58 ` Ricardo Wurmus
  2016-04-22  8:04   ` Roel Janssen
  2016-04-20 13:06 ` Ricardo Wurmus
                   ` (2 subsequent siblings)
  8 siblings, 1 reply; 30+ messages in thread
From: Ricardo Wurmus @ 2016-04-20 12:58 UTC (permalink / raw)
  To: Roel Janssen; +Cc: guix-devel


Roel Janssen <roel@gnu.org> writes:

> From f0cb8c476e902e3351988f7c278b3682837c8cce Mon Sep 17 00:00:00 2001
> From: Roel Janssen <roel@gnu.org>
> Date: Tue, 22 Mar 2016 15:47:06 +0100
> Subject: [PATCH 5/8] gnu: Add filevercmp.

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

> diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
> index 0abccbc..261660f 100644
> --- a/gnu/packages/bioinformatics.scm
> +++ b/gnu/packages/bioinformatics.scm
> @@ -4923,3 +4923,31 @@ combinatorial configurations.\" G Ehrlich - Journal of the ACM (JACM),
>        (synopsis "Program for managing SOM (Self-Organizing Maps) neural networks")
>        (description "Program for managing SOM (Self-Organizing Maps) neural networks.")
>        (license license:gpl3))))
> +
> +(define-public filevercmp
> +  (let ((commit "1a9b779b93d0b244040274794d402106907b71b7"))
> +    (package
> +      (name "filevercmp")
> +      (version (string-append "0-1." (string-take commit 7)))
> +      (source (origin
> +        (method url-fetch)
> +        (uri (string-append "https://github.com/ekg/filevercmp/archive/"
> +                            commit ".tar.gz"))
> +        (file-name "filevercmp-src.tar.gz")

Is this on purpose?  Or should we use “(string-append name "-" version
".tar.gz")” instead?

> +        (sha256
> +         (base32 "0yp5jswf5j2pqc6517x277s4s6h1ss99v57kxw9gy0jkfl3yh450"))))
> +      (build-system gnu-build-system)
> +      (arguments
> +       `(#:tests? #f ; There are no tests to run.
> +         #:phases
> +         (modify-phases %standard-phases
> +           (delete 'configure) ; There is no configure phase.
> +           (replace 'install
> +             (lambda* (#:key outputs #:allow-other-keys)
> +               (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
> +                 (install-file "filevercmp" bin)))))))
> +      (home-page "https://github.com/ekg/filevercmp")
> +      (synopsis "Program to compare version strings")
> +      (description "A program to compare version strings.  It intends to be a
> +replacement for strverscmp.")

Please turn the first sentence fragment into a full sentence.

~~ Ricardo

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

* Re: [PATCH] Add vcflib.
  2016-03-22 15:24 [PATCH] Add vcflib Roel Janssen
                   ` (5 preceding siblings ...)
  2016-04-20 12:58 ` Ricardo Wurmus
@ 2016-04-20 13:06 ` Ricardo Wurmus
  2016-04-20 13:08 ` Ricardo Wurmus
  2016-04-20 13:18 ` Ricardo Wurmus
  8 siblings, 0 replies; 30+ messages in thread
From: Ricardo Wurmus @ 2016-04-20 13:06 UTC (permalink / raw)
  To: Roel Janssen; +Cc: guix-devel


Roel Janssen <roel@gnu.org> writes:
> From c934cee6c84a39de36ecb4c3a85340ff025b1343 Mon Sep 17 00:00:00 2001
> From: Roel Janssen <roel@gnu.org>
> Date: Tue, 22 Mar 2016 15:50:12 +0100
> Subject: [PATCH 6/8] gnu: Add fastahack.

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

> diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
> index 261660f..9cbde46 100644
> --- a/gnu/packages/bioinformatics.scm
> +++ b/gnu/packages/bioinformatics.scm
> @@ -4951,3 +4951,37 @@ combinatorial configurations.\" G Ehrlich - Journal of the ACM (JACM),
>        (description "A program to compare version strings.  It intends to be a
>  replacement for strverscmp.")
>        (license license:gpl3+))))
> +
> +(define-public fastahack
> +  (let ((commit "c68cebb4f2e5d5d2b70cf08fbdf1944e9ab2c2dd"))
> +    (package
> +      (name "fastahack")
> +      (version (string-append "0-1." (string-take commit 7)))
> +      (source (origin
> +        (method url-fetch)
> +        (uri (string-append "https://github.com/ekg/fastahack/archive/"
> +                            commit ".tar.gz"))
> +        (file-name (string-append name "-" version
> "-checkout.tar.gz"))

I don’t think we should add “checkout” here.

> +        (sha256
> +         (base32 "0j25lcl3jk1kls66zzxjfyq5ir6sfcvqrdwfcva61y3ajc9ssay2"))))
> +      (build-system gnu-build-system)
> +      (arguments
> +       `(#:tests? #f ; There are no tests to run.
> +         #:phases
> +         (modify-phases %standard-phases
> +           (delete 'configure) ; There is no configure phase.
> +           (replace 'install
> +             (lambda* (#:key outputs #:allow-other-keys)
> +               (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
> +                 (install-file "fastahack" bin)))))))
> +      (home-page "https://github.com/ekg/fastahack")
> +      (synopsis "Program for indexing and sequence extraction from
> FASTA files")

This sounds a bit off.  It’s “indexing of ... FASTA files” (not “from”)
but “sequence extraction from FASTA files”.  Maybe dropping “Program
for” would help here:

  “Index and extract sequences from FASTA files”

What do you think?

> +      (description "Fastahack is a small application for indexing and extracting
> +sequences and subsequences from FASTA files.  The included Fasta.cpp library
> +provides a FASTA reader and indexer that can be embeddedinto applications which
> +would benefit from directly reading subsequences from FASTA files.  The library
> +automatically handles index file generation and use.")

“embeddedinto” should be split.
I would drop mention of “Fasta.cpp” – or is this really the name of the library?

> +      ;; libdisorder is licensed GPLv2.  The parent project (vcflib), of which
> +      ;; this program is a submodule, is licensed MIT, which is the same as
> +      ;; the Expat license.
> +      (license (list license:gpl2 license:expat)))))

As before we use the license of this code and ignore the parent
project’s license.

Here’s a license problem, though.  The files “Fasta.h” and “Fasta.cpp”
contain notices like this:

> // ***************************************************************************
> // FastaIndex.h (c) 2010 Erik Garrison <erik.garrison@bc.edu>
> // Marth Lab, Department of Biology, Boston College
> // All rights reserved.
> // ---------------------------------------------------------------------------
> // Last modified: 5 February 2010 (EG)
> // ---------------------------------------------------------------------------

“disorder.c” has license GPLv2+.

There’s a bug report mentioning this problem here:

   https://github.com/ekg/fastahack/issues/8

As it is now we cannot include this in Guix upstream unless the non-free
files are removed in a snippet.

~~ Ricardo

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

* Re: [PATCH] Add vcflib.
  2016-03-22 15:24 [PATCH] Add vcflib Roel Janssen
                   ` (6 preceding siblings ...)
  2016-04-20 13:06 ` Ricardo Wurmus
@ 2016-04-20 13:08 ` Ricardo Wurmus
  2016-04-26 17:50   ` Roel Janssen
  2016-04-20 13:18 ` Ricardo Wurmus
  8 siblings, 1 reply; 30+ messages in thread
From: Ricardo Wurmus @ 2016-04-20 13:08 UTC (permalink / raw)
  To: Roel Janssen; +Cc: guix-devel


Roel Janssen <roel@gnu.org> writes:
> From 3ed14719121a952fca48a8ad3426588ebb58a130 Mon Sep 17 00:00:00 2001
> From: Roel Janssen <roel@gnu.org>
> Date: Tue, 22 Mar 2016 15:57:33 +0100
> Subject: [PATCH 7/8] gnu: Add intervaltree.

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

> diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
> index 9cbde46..5a0eb16 100644
> --- a/gnu/packages/bioinformatics.scm
> +++ b/gnu/packages/bioinformatics.scm
> @@ -4985,3 +4985,35 @@ automatically handles index file generation and use.")
>        ;; this program is a submodule, is licensed MIT, which is the same as
>        ;; the Expat license.
>        (license (list license:gpl2 license:expat)))))
> +
> +(define-public intervaltree
> +  (let ((commit "dbb4c513d1ad3baac516fc1484c995daf9b42838"))
> +    (package
> +      (name "intervaltree")
> +      (version (string-append "0-1." (string-take commit 7)))
> +      (source (origin
> +        (method url-fetch)
> +        (uri (string-append
> +              "https://github.com/ekg/intervaltree/archive/" commit ".tar.gz"))
> +        (file-name (string-append name "-" version ".tar.gz"))
> +        (sha256
> +         (base32 "19prwpn2wxsrijp5svfqvfcxl5nj7zdhm3jycd5kqhl9nifpmcks"))))
> +      (build-system gnu-build-system)
> +      (arguments
> +       `(#:phases
> +         (modify-phases %standard-phases
> +           (delete 'configure) ; There is no configure phase.
> +           (replace 'check
> +             (lambda _
> +                (zero? (system* "./interval_tree_test"))))

The indentation looks wrong here.  Could you please double-check that
you’re not using tabs?

> +           (replace 'install
> +             (lambda* (#:key outputs #:allow-other-keys)
> +               (let ((include (string-append (assoc-ref outputs "out")
> +                                             "/include/intervaltree")))
> +                 (install-file "IntervalTree.h" include)))))))
> +      (home-page "https://github.com/ekg/intervaltree/")
> +      (synopsis "Minimal C++ interval tree implementation")
> +      (description "This library provides a basic implementation of an interval
> +tree using C++ templates, allowing the insertion of arbitrary types into the
> +tree.")
> +      (license license:expat))))

The rest looks good to me.

~~ Ricardo

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

* Re: [PATCH] Add vcflib.
  2016-03-22 15:24 [PATCH] Add vcflib Roel Janssen
                   ` (7 preceding siblings ...)
  2016-04-20 13:08 ` Ricardo Wurmus
@ 2016-04-20 13:18 ` Ricardo Wurmus
  8 siblings, 0 replies; 30+ messages in thread
From: Ricardo Wurmus @ 2016-04-20 13:18 UTC (permalink / raw)
  To: Roel Janssen; +Cc: guix-devel


Roel Janssen <roel@gnu.org> writes:
> From 07f041559f7f023c56c23f81ac7e90441c44f91b Mon Sep 17 00:00:00 2001
> From: Roel Janssen <roel@gnu.org>
> Date: Tue, 22 Mar 2016 16:06:45 +0100
> Subject: [PATCH 8/8] gnu: Add vcflib.

> * gnu/packages/bioinformatics.scm (tabixpp-vcflib): New variable.
> * gnu/packages/bioinformatics.scm (vcflib): New variable.

These should be two separate patches.
 
> +;; This version works with FreeBayes while the released version doesn't. The
> +;; release creates a variable with the name "vcf" somewhere, which is also the
> +;; name of a namespace in vcflib.

Is there an upstream bugreport about this?  If so it would be good to
link to it.

> +(define-public tabixpp-vcflib
> +  (let ((commit "bbc63a49acc52212199f92e9e3b8fba0a593e3f7"))
> +    (package (inherit tabixpp)
> +      (name "tabixpp-vcflib")
> +      (version (string-append "0-1." (string-take commit 7)))
> +      (source (origin
> +        (method url-fetch)
> +        (uri (string-append "https://github.com/ekg/tabixpp/archive/"
> +                            commit ".tar.gz"))
> +        (file-name (string-append name "-" version
> "-checkout.tar.gz"))

No need to append “-checkout”.

> +        (sha256
> +         (base32 "1s06wmpgj4my4pik5kp2lc42hzzazbp5ism2y4i2ajp2y1c68g77")))))))
> +
>  (define-public smithwaterman
>    (let ((commit "203218b47d45ac56ef234716f1bd4c741b289be1"))
>      (package
> @@ -5017,4 +5033,82 @@ automatically handles index file generation and use.")
>  tree using C++ templates, allowing the insertion of arbitrary types into the
>  tree.")
>        (license license:expat))))
> +
> +(define-public vcflib
> +  (let ((commit "5ac091365fdc716cc47cc5410bb97ee5dc2a2c92"))
> +    (package
> +      (name "vcflib")
> +      (version (string-append "0-1." (string-take commit 7)))
> +      (source (origin
> +         (method url-fetch)
> +         (uri (string-append "https://github.com/vcflib/vcflib/archive/"
> +                commit ".tar.gz"))

The indentation is off here.  “(method” is way too far to the left.
Also “commit” is misaligned.

> +         (file-name (string-append name "-" version ".tar.gz"))
> +         (sha256
> +          (base32 "0ywshwpif059z5h0g7zzrdfzzdj2gr8xvwlwcsdxrms3p9iy35h8"))))
> +      (build-system gnu-build-system)
> +      (inputs
> +       `(("intervaltree" ,intervaltree)
> +         ("htslib" ,htslib)
> +         ("zlib" ,zlib)))
> +      (native-inputs
> +       `(("python" ,python-2)
> +         ("perl" ,perl)
> +         ("r" ,r)
> +         ("node" ,node)
> +         ("tabixpp-src" ,(package-source tabixpp-vcflib))
> +         ("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))))

Not a fan of this, but I cannot think of a better way to do this.

> +      (arguments
> +       `(#:tests? #f ; There are no tests to run.
> +         #: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
> +                                 (zero? (system* "tar" "xvf"
> +                                        (assoc-ref inputs source)
> +                                        "--strip-components=1"))))))
> +                 (and
> +                  (unpack "fastahack-src" "fastahack")
> +                  (unpack "filevercmp-src" "filevercmp")
> +                  (unpack "fsom-src" "fsom")
> +                  (unpack "multichoose-src" "multichoose")
> +                  (unpack "smithwaterman-src" "smithwaterman")
> +                  (unpack "tabixpp-src" "tabixpp")))))
> +           (add-after 'unpack-submodule-sources 'fix-makefile
> +             (lambda* (#:key inputs #:allow-other-keys)
> +               (substitute* '("Makefile")
> +                 (("^GIT_VERSION.*") "GIT_VERSION = v1.0.0"))))

What is this for?  Where does this version number come from?  Should it
match this package’s version?

> +           (replace 'build
> +            (lambda* (#:key inputs make-flags #:allow-other-keys)
> +              (with-directory-excursion "tabixpp"
> +                (zero? (system* "make")))
> +              (zero? (system* "make" "CC=gcc"
> +                (string-append
> +                  "CFLAGS=\"" "-Itabixpp "
> +                  "-I" (assoc-ref inputs "htslib") "/include "
> +                  "-I" (assoc-ref inputs "intervaltree") "/include "
> +                  "\"") "all"))))

Instead of replacing the build phase try to use make-flags.

> +           (replace 'install
> +            (lambda* (#:key outputs #:allow-other-keys)
> +              (let* ((out (assoc-ref outputs "out"))
> +                     (bin (string-append out "/bin"))
> +                     (lib (string-append out "/lib")))
> +                (for-each (lambda (file)
> +                            (install-file file bin))
> +                          (find-files "bin" ".*"))
> +                (install-file "libvcflib.a" lib)))))))

Remember to return “#t”.

> +      (home-page "https://github.com/vcflib/vcflib/")
> +      (synopsis "Library for parsing and manipulating VCF files")
> +      (description "Vcflib provides methods to manipulate and interpret
> +sequence variation as it can be described by VCF. It is both an API for parsing
> +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.")

Please use double-spacing between sentences.  I wonder what it means
that “Vcflib ... is ... an API”.  I think this should say “It offers an
API for parsing” or “It is a library for parsing”.

> +      (license license:expat))))

There are no license headers in most (all?) of the files.  There’s a bug
report for that:

   https://github.com/vcflib/vcflib/issues/16

I think this is not a problem, though, as the README file says that the
“MIT” license applies to the project.

~~ Ricardo

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

* Re: [PATCH] Add vcflib.
  2016-04-20 12:46 ` Ricardo Wurmus
@ 2016-04-22  7:24   ` Roel Janssen
  2016-04-26 14:47     ` Ricardo Wurmus
  0 siblings, 1 reply; 30+ messages in thread
From: Roel Janssen @ 2016-04-22  7:24 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: guix-devel

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

From 58ecd585411a8981f7cefdb6928e199ef77de476 Mon Sep 17 00:00:00 2001
From: Roel Janssen <roel@gnu.org>
Date: Fri, 22 Apr 2016 09:15:52 +0200
Subject: [PATCH] gnu: Add tabixpp.

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

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index c49b0a9..d3895fd 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -5074,3 +5074,37 @@ negative binomial distribution to model the read counts among the samples in
 the same group, and look for consistent differences between ChIP and control
 group or two ChIP groups run under different conditions.")
     (license license:gpl3+)))
+
+(define-public tabixpp
+  (package
+   (name "tabixpp")
+   (version "1.0.0")
+   (source (origin
+     (method url-fetch)
+     (uri (string-append "https://github.com/ekg/tabixpp/archive/v"
+                         version ".tar.gz"))
+     (file-name (string-append name "-" version ".tar.gz"))
+     (sha256
+      (base32 "1s0lgks7qlvlhvcjhi2wm18nnza1bwcnic44ij7z8wfg88h4ivwn"))))
+   (build-system gnu-build-system)
+   (inputs
+    `(("htslib" ,htslib)
+      ("zlib" ,zlib)))
+   (arguments
+    `(#:tests? #f ; There are no tests to run.
+      #:make-flags (let ((htslib-ref (assoc-ref %build-inputs "htslib")))
+                    `("HTS_HEADERS=" ; Do not check for local htslib headers.
+                      ,(string-append "HTS_LIB=" htslib-ref "/lib/libhts.a")
+                      ,(string-append "LIBPATH=-L. -L" htslib-ref "/include")))
+      #:phases
+      (modify-phases %standard-phases
+        (delete 'configure) ; There is no configure phase.
+        (replace 'install
+          (lambda* (#:key outputs #:allow-other-keys)
+            (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
+              (install-file "tabix++" bin)))))))
+   (home-page "https://github.com/ekg/tabixpp")
+   (synopsis "C++ wrapper around Tabix project")
+   (description "This is a C++ wrapper around the Tabix project which abstracts
+some of the details of opening and jumping in Tabix-indexed files.")
+   (license license:expat)))
-- 
2.5.5


[-- Attachment #2: Type: text/plain, Size: 3405 bytes --]

Hello Ricardo,

Thank you for your review.

Ricardo Wurmus writes:

> Roel Janssen <roel@gnu.org> writes:
>> From dfc9b373bbce0f36882407cec47440a0a44c78d1 Mon Sep 17 00:00:00 2001
>> From: Roel Janssen <roel@gnu.org>
>> Date: Tue, 22 Mar 2016 14:59:05 +0100
>> Subject: [PATCH 1/8] gnu: Add tabixpp.
>
>> * gnu/packages/bioinformatics.scm (tabixpp): New variable.
>> ---
>>  gnu/packages/bioinformatics.scm | 39 +++++++++++++++++++++++++++++++++++++++
>>  1 file changed, 39 insertions(+)
>
>> diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
>> index 281bd1f..6792be9 100644
>> --- a/gnu/packages/bioinformatics.scm
>> +++ b/gnu/packages/bioinformatics.scm
>> @@ -4791,3 +4791,42 @@ negative binomial distribution to model the read counts among the samples in
>>  the same group, and look for consistent differences between ChIP and control
>>  group or two ChIP groups run under different conditions.")
>>      (license license:gpl3+)))
>> +
>> +(define-public tabixpp
>> +  (package
>> +   (name "tabixpp")
>> +   (version "1.0.0")
>> +   (source (origin
>> +     (method url-fetch)
>> +     (uri (string-append "https://github.com/ekg/tabixpp/archive/v"
>> +                         version ".tar.gz"))
>> +     (file-name (string-append name "-" version ".tar.gz"))
>> +     (sha256
>> +      (base32 "1s0lgks7qlvlhvcjhi2wm18nnza1bwcnic44ij7z8wfg88h4ivwn"))))
>> +   (build-system gnu-build-system)
>> +   (inputs
>> +    `(("htslib" ,htslib)
>> +      ("zlib" ,zlib)))
>> +   (arguments
>> +    `(#:tests? #f ; There are no tests to run.
>> +      #:phases
>> +      (modify-phases %standard-phases
>> +        (delete 'configure) ; There is no configure phase.
>> +        ;; Modify the build phase to use the separately packaged htslib.
>> +        (replace 'build
>> +          (lambda* (#:key inputs #:allow-other-keys)
>> +            (let ((htslib-ref (assoc-ref inputs "htslib")))
>> +              (zero?
>> +               (system* "make"
>> +                 (string-append "HTS_LIB=" htslib-ref "/lib/libhts.a")
>> +                 "HTS_HEADERS=" ; Do not check for local htslib headers.
>> +                 (string-append "LIBPATH=-L. -L" htslib-ref
>> "/include"))))))
>
> Is this really necessary or could you use make-flags instead?  That
> would be the preferred way of doing this rather than replacing the build
> phase.

So I had tried, but my Scheme skills failed there.
In the new patch I used make-flags instead.  I hope the (let ...) is
appropriate there.  I like it because it allows me to stay within 80
columns, and avoid repetitive (assoc-ref %build-inputs "htslib").

>> +        (replace 'install
>> +          (lambda* (#:key outputs #:allow-other-keys)
>> +            (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
>> +              (install-file "tabix++" bin)))))))
>> +   (home-page "https://github.com/ekg/tabixpp")
>> +   (synopsis "C++ wrapper around tabix project")
>
> “tabix” or “Tabix”?

Tabix I suppose.

>> +   (description "This is a C++ wrapper around the Tabix project which abstracts
>> +some of the details of opening and jumping in tabix-indexed files.")
>> +   (license license:expat)))
>
> “tabix” or “Tabix”?

Right.  I changed both occurrences to “Tabix”.

> Could you please send an updated patch?

Here it is.


Thanks again for your valuable time.

Kind regards,
Roel Janssen

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

* Re: [PATCH] Add vcflib.
  2016-04-20 12:53 ` Ricardo Wurmus
@ 2016-04-22  7:40   ` Roel Janssen
  2016-04-26 14:47     ` Ricardo Wurmus
  0 siblings, 1 reply; 30+ messages in thread
From: Roel Janssen @ 2016-04-22  7:40 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: guix-devel

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

From e7d84066efe5857581c1d03be5dfda95c1541462 Mon Sep 17 00:00:00 2001
From: Roel Janssen <roel@gnu.org>
Date: Fri, 22 Apr 2016 09:35:47 +0200
Subject: [PATCH] gnu: Add multichoose.

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

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index d3895fd..41493ca 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -5108,3 +5108,38 @@ group or two ChIP groups run under different conditions.")
    (description "This is a C++ wrapper around the Tabix project which abstracts
 some of the details of opening and jumping in Tabix-indexed files.")
    (license license:expat)))
+
+(define-public multichoose
+  (package
+    (name "multichoose")
+    (version "1.0.3")
+    (source (origin
+      (method url-fetch)
+      (uri (string-append "https://github.com/ekg/multichoose/archive/v"
+                          version ".tar.gz"))
+      (file-name (string-append name "-" version ".tar.gz"))
+      (sha256
+       (base32 "0xy86vvr3qrs4l81qis7ia1q2hnqv0xcb4a1n60smxbhqqis5w3l"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f ; There are no tests to run.
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure) ; There is no configure phase.
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
+               (install-file "multichoose" bin)
+               (install-file "multipermute" bin)))))))
+    (native-inputs
+     `(("python" ,python-2)
+       ("node" ,node)))
+    (home-page "https://github.com/ekg/multichoose")
+    (synopsis "Library for a loopless multiset combination generation
+algorithm")
+    (description "This package provides a library implementing an efficient
+loopless multiset combination generation algorithm which is (approximately)
+described in \"Loopless algorithms for generating permutations, combinations,
+and other combinatorial configurations.\" G Ehrlich - Journal of the ACM (JACM),
+1973. (Algorithm 7.)")
+    (license license:expat)))
-- 
2.5.5


[-- Attachment #2: Type: text/plain, Size: 3130 bytes --]


Ricardo Wurmus writes:

> Roel Janssen <roel@gnu.org> writes:
>
>> From edcf3132dca6c3e86439710892870285377adbb2 Mon Sep 17 00:00:00 2001
>> From: Roel Janssen <roel@gnu.org>
>> Date: Tue, 22 Mar 2016 15:07:47 +0100
>> Subject: [PATCH 3/8] gnu: Add multichoose.
>
>> * gnu/packages/bioinformatics.scm (multichoose): New variable.
>> ---
>>  gnu/packages/bioinformatics.scm | 35 +++++++++++++++++++++++++++++++++++
>>  1 file changed, 35 insertions(+)
>
>> diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
>> index fa7ba24..9465d56 100644
>> --- a/gnu/packages/bioinformatics.scm
>> +++ b/gnu/packages/bioinformatics.scm
>> @@ -4861,3 +4861,38 @@ algorithm.")
>>        ;; this program is a submodule, is licensed MIT, which is the same as
>>        ;; the Expat license.
>>        (license (list license:gpl2 license:expat)))))
>> +
>> +(define-public multichoose
>> +  (package
>> +    (name "multichoose")
>> +    (version "1.0.3")
>> +    (source (origin
>> +      (method url-fetch)
>> +      (uri (string-append "https://github.com/ekg/multichoose/archive/v"
>> +                          version ".tar.gz"))
>> +      (file-name (string-append name "-" version ".tar.gz"))
>> +      (sha256
>> +       (base32 "0xy86vvr3qrs4l81qis7ia1q2hnqv0xcb4a1n60smxbhqqis5w3l"))))
>> +    (build-system gnu-build-system)
>> +    (native-inputs
>> +     `(("python" ,python-2)
>> +       ("node" ,node)))
>> +    (arguments
>> +     `(#:tests? #f ; There are no tests to run.
>> +       #:phases
>> +       (modify-phases %standard-phases
>> +         (delete 'configure) ; There is no configure phase.
>> +         (replace 'install
>> +           (lambda* (#:key outputs #:allow-other-keys)
>> +             (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
>> +               (install-file "multichoose" bin)
>> +               (install-file "multipermute" bin)))))))
>
> Nitpick: normally, we place the arguments right below the
> “build-system”.  The “native-inputs” then follow after “arguments”.

Ok.  I fixed this in the new patch.

>> +    (home-page "https://github.com/ekg/multichoose")
>> +    (synopsis "Library for efficient loopless multiset combination generation
>> +algorithm")
>
> This synopsis is a bit long.  Maybe drop “efficient”?  (Most projects
> include “efficient” or “fast” in their descriptions, so it isn’t very
> useful in a synopsis.)

I dropped efficient.  A bit sad it doesn't keep the synopsis on a single
line.  I cannot think of a shorter way to describe this library.

>> +    (description "A library implements an efficient loopless multiset
>> +combination generation algorithm which is (approximately) described in
>> +\"Loopless algorithms for generating permutations, combinations, and other
>> +combinatorial configurations.\" G Ehrlich - Journal of the ACM (JACM),
>> +1973. (Algorithm 7.)")
>
> “A library”?  How about “This package provides a library implementing...”

Yes, that's better.  That reminds me to double-check descriptions for
complete sentences.  Thanks for catching this.


I attached a new patch.


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

* Re: [PATCH] Add vcflib.
  2016-04-20 12:58 ` Ricardo Wurmus
@ 2016-04-22  8:04   ` Roel Janssen
  2016-04-22 11:27     ` Ricardo Wurmus
  0 siblings, 1 reply; 30+ messages in thread
From: Roel Janssen @ 2016-04-22  8:04 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: guix-devel

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

From 8808f3abda32feca92ec8e2bb403ba705ef4b7b7 Mon Sep 17 00:00:00 2001
From: Roel Janssen <roel@gnu.org>
Date: Fri, 22 Apr 2016 10:02:37 +0200
Subject: [PATCH] gnu: Add filevercmp.

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

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index ade3f14..c81c3a1 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -5172,3 +5172,31 @@ and other combinatorial configurations.\" G Ehrlich - Journal of the ACM (JACM),
 neural networks.  The example program trains and applies a self-organizing map
 to the input tab-separated data.")
       (license license:gpl3))))
+
+(define-public filevercmp
+  (let ((commit "1a9b779b93d0b244040274794d402106907b71b7"))
+    (package
+      (name "filevercmp")
+      (version (string-append "0-1." (string-take commit 7)))
+      (source (origin
+        (method url-fetch)
+        (uri (string-append "https://github.com/ekg/filevercmp/archive/"
+                            commit ".tar.gz"))
+        (file-name (string-append name "-src.tar.gz"))
+        (sha256
+         (base32 "0yp5jswf5j2pqc6517x277s4s6h1ss99v57kxw9gy0jkfl3yh450"))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:tests? #f ; There are no tests to run.
+         #:phases
+         (modify-phases %standard-phases
+           (delete 'configure) ; There is no configure phase.
+           (replace 'install
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
+                 (install-file "filevercmp" bin)))))))
+      (home-page "https://github.com/ekg/filevercmp")
+      (synopsis "This program compares version strings")
+      (description "This program compares version strings.  It intends to be a
+replacement for strverscmp.")
+      (license license:gpl3+))))
-- 
2.5.5


[-- Attachment #2: Type: text/plain, Size: 2603 bytes --]


Ricardo Wurmus writes:

> Roel Janssen <roel@gnu.org> writes:
>
>> From f0cb8c476e902e3351988f7c278b3682837c8cce Mon Sep 17 00:00:00 2001
>> From: Roel Janssen <roel@gnu.org>
>> Date: Tue, 22 Mar 2016 15:47:06 +0100
>> Subject: [PATCH 5/8] gnu: Add filevercmp.
>
>> * gnu/packages/bioinformatics.scm (filevercmp): New variable.
>> ---
>>  gnu/packages/bioinformatics.scm | 28 ++++++++++++++++++++++++++++
>>  1 file changed, 28 insertions(+)
>
>> diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
>> index 0abccbc..261660f 100644
>> --- a/gnu/packages/bioinformatics.scm
>> +++ b/gnu/packages/bioinformatics.scm
>> @@ -4923,3 +4923,31 @@ combinatorial configurations.\" G Ehrlich - Journal of the ACM (JACM),
>>        (synopsis "Program for managing SOM (Self-Organizing Maps) neural networks")
>>        (description "Program for managing SOM (Self-Organizing Maps) neural networks.")
>>        (license license:gpl3))))
>> +
>> +(define-public filevercmp
>> +  (let ((commit "1a9b779b93d0b244040274794d402106907b71b7"))
>> +    (package
>> +      (name "filevercmp")
>> +      (version (string-append "0-1." (string-take commit 7)))
>> +      (source (origin
>> +        (method url-fetch)
>> +        (uri (string-append "https://github.com/ekg/filevercmp/archive/"
>> +                            commit ".tar.gz"))
>> +        (file-name "filevercmp-src.tar.gz")
>
> Is this on purpose?  Or should we use “(string-append name "-" version
> ".tar.gz")” instead?

This is on purpose.  There is no released version.  Therefore I gave it
"version" 0, with a "-1" suffix for Guix, and the first seven characters
of commit hash.

The download link includes the full commit hash.

>> +        (sha256
>> +         (base32 "0yp5jswf5j2pqc6517x277s4s6h1ss99v57kxw9gy0jkfl3yh450"))))
>> +      (build-system gnu-build-system)
>> +      (arguments
>> +       `(#:tests? #f ; There are no tests to run.
>> +         #:phases
>> +         (modify-phases %standard-phases
>> +           (delete 'configure) ; There is no configure phase.
>> +           (replace 'install
>> +             (lambda* (#:key outputs #:allow-other-keys)
>> +               (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
>> +                 (install-file "filevercmp" bin)))))))
>> +      (home-page "https://github.com/ekg/filevercmp")
>> +      (synopsis "Program to compare version strings")
>> +      (description "A program to compare version strings.  It intends to be a
>> +replacement for strverscmp.")
>
> Please turn the first sentence fragment into a full sentence.

Done.

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

* Re: [PATCH] Add vcflib.
  2016-04-22  8:04   ` Roel Janssen
@ 2016-04-22 11:27     ` Ricardo Wurmus
  2016-04-25  9:20       ` Roel Janssen
  0 siblings, 1 reply; 30+ messages in thread
From: Ricardo Wurmus @ 2016-04-22 11:27 UTC (permalink / raw)
  To: Roel Janssen; +Cc: guix-devel


Roel Janssen <roel@gnu.org> writes:

> Ricardo Wurmus writes:
>
>> Roel Janssen <roel@gnu.org> writes:
>>
>>> From f0cb8c476e902e3351988f7c278b3682837c8cce Mon Sep 17 00:00:00 2001
>>> From: Roel Janssen <roel@gnu.org>
>>> Date: Tue, 22 Mar 2016 15:47:06 +0100
>>> Subject: [PATCH 5/8] gnu: Add filevercmp.
>>
>>> * gnu/packages/bioinformatics.scm (filevercmp): New variable.
>>> ---
>>>  gnu/packages/bioinformatics.scm | 28 ++++++++++++++++++++++++++++
>>>  1 file changed, 28 insertions(+)
>>
>>> diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
>>> index 0abccbc..261660f 100644
>>> --- a/gnu/packages/bioinformatics.scm
>>> +++ b/gnu/packages/bioinformatics.scm
>>> @@ -4923,3 +4923,31 @@ combinatorial configurations.\" G Ehrlich - Journal of the ACM (JACM),
>>>        (synopsis "Program for managing SOM (Self-Organizing Maps) neural networks")
>>>        (description "Program for managing SOM (Self-Organizing Maps) neural networks.")
>>>        (license license:gpl3))))
>>> +
>>> +(define-public filevercmp
>>> +  (let ((commit "1a9b779b93d0b244040274794d402106907b71b7"))
>>> +    (package
>>> +      (name "filevercmp")
>>> +      (version (string-append "0-1." (string-take commit 7)))
>>> +      (source (origin
>>> +        (method url-fetch)
>>> +        (uri (string-append "https://github.com/ekg/filevercmp/archive/"
>>> +                            commit ".tar.gz"))
>>> +        (file-name "filevercmp-src.tar.gz")
>>
>> Is this on purpose?  Or should we use “(string-append name "-" version
>> ".tar.gz")” instead?
>
> This is on purpose.  There is no released version.  Therefore I gave it
> "version" 0, with a "-1" suffix for Guix, and the first seven characters
> of commit hash.
>
> The download link includes the full commit hash.

I see that my comment was ambiguous.  I meant the argument to
“(file-name ...)”.  Instead of using “filevercmp-src.tar.gz” I think it
would be better to include the generated version number by doing
something like this:

    (file-name (string-append name "-" version ".tar.gz"))

~~ Ricardo

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

* Re: [PATCH] Add vcflib.
  2016-04-22 11:27     ` Ricardo Wurmus
@ 2016-04-25  9:20       ` Roel Janssen
  2016-04-26 14:42         ` Ricardo Wurmus
  0 siblings, 1 reply; 30+ messages in thread
From: Roel Janssen @ 2016-04-25  9:20 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: guix-devel

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: 0001-gnu-Add-filevercmp-v2.patch --]
[-- Type: text/x-patch, Size: 2053 bytes --]

From cda09da657bd18f21102b65729740b4819589ff9 Mon Sep 17 00:00:00 2001
From: Roel Janssen <roel@gnu.org>
Date: Mon, 25 Apr 2016 11:17:21 +0200
Subject: [PATCH] gnu: Add filevercmp.

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

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 899ce1c..e973fff 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -5074,3 +5074,31 @@ negative binomial distribution to model the read counts among the samples in
 the same group, and look for consistent differences between ChIP and control
 group or two ChIP groups run under different conditions.")
     (license license:gpl3+)))
+
+(define-public filevercmp
+  (let ((commit "1a9b779b93d0b244040274794d402106907b71b7"))
+    (package
+      (name "filevercmp")
+      (version (string-append "0-1." (string-take commit 7)))
+      (source (origin
+        (method url-fetch)
+        (uri (string-append "https://github.com/ekg/filevercmp/archive/"
+                            commit ".tar.gz"))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32 "0yp5jswf5j2pqc6517x277s4s6h1ss99v57kxw9gy0jkfl3yh450"))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:tests? #f ; There are no tests to run.
+         #:phases
+         (modify-phases %standard-phases
+           (delete 'configure) ; There is no configure phase.
+           (replace 'install
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
+                 (install-file "filevercmp" bin)))))))
+      (home-page "https://github.com/ekg/filevercmp")
+      (synopsis "This program compares version strings")
+      (description "This program compares version strings.  It intends to be a
+replacement for strverscmp.")
+      (license license:gpl3+))))
-- 
2.5.5


[-- Attachment #2: Type: text/plain, Size: 2241 bytes --]


Ricardo Wurmus writes:

> Roel Janssen <roel@gnu.org> writes:
>
>> Ricardo Wurmus writes:
>>
>>> Roel Janssen <roel@gnu.org> writes:
>>>
>>>> From f0cb8c476e902e3351988f7c278b3682837c8cce Mon Sep 17 00:00:00 2001
>>>> From: Roel Janssen <roel@gnu.org>
>>>> Date: Tue, 22 Mar 2016 15:47:06 +0100
>>>> Subject: [PATCH 5/8] gnu: Add filevercmp.
>>>
>>>> * gnu/packages/bioinformatics.scm (filevercmp): New variable.
>>>> ---
>>>>  gnu/packages/bioinformatics.scm | 28 ++++++++++++++++++++++++++++
>>>>  1 file changed, 28 insertions(+)
>>>
>>>> diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
>>>> index 0abccbc..261660f 100644
>>>> --- a/gnu/packages/bioinformatics.scm
>>>> +++ b/gnu/packages/bioinformatics.scm
>>>> @@ -4923,3 +4923,31 @@ combinatorial configurations.\" G Ehrlich - Journal of the ACM (JACM),
>>>>        (synopsis "Program for managing SOM (Self-Organizing Maps) neural networks")
>>>>        (description "Program for managing SOM (Self-Organizing Maps) neural networks.")
>>>>        (license license:gpl3))))
>>>> +
>>>> +(define-public filevercmp
>>>> +  (let ((commit "1a9b779b93d0b244040274794d402106907b71b7"))
>>>> +    (package
>>>> +      (name "filevercmp")
>>>> +      (version (string-append "0-1." (string-take commit 7)))
>>>> +      (source (origin
>>>> +        (method url-fetch)
>>>> +        (uri (string-append "https://github.com/ekg/filevercmp/archive/"
>>>> +                            commit ".tar.gz"))
>>>> +        (file-name "filevercmp-src.tar.gz")
>>>
>>> Is this on purpose?  Or should we use “(string-append name "-" version
>>> ".tar.gz")” instead?
>>
>> This is on purpose.  There is no released version.  Therefore I gave it
>> "version" 0, with a "-1" suffix for Guix, and the first seven characters
>> of commit hash.
>>
>> The download link includes the full commit hash.
>
> I see that my comment was ambiguous.  I meant the argument to
> “(file-name ...)”.  Instead of using “filevercmp-src.tar.gz” I think it
> would be better to include the generated version number by doing
> something like this:
>
>     (file-name (string-append name "-" version ".tar.gz"))

Oh, of course.  I attached an updated patch.

Kind regards,
Roel Janssen

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

* Re: [PATCH] Add vcflib.
  2016-04-25  9:20       ` Roel Janssen
@ 2016-04-26 14:42         ` Ricardo Wurmus
  0 siblings, 0 replies; 30+ messages in thread
From: Ricardo Wurmus @ 2016-04-26 14:42 UTC (permalink / raw)
  To: Roel Janssen; +Cc: guix-devel


Roel Janssen <roel@gnu.org> writes:

> Ricardo Wurmus writes:
>
>> Roel Janssen <roel@gnu.org> writes:
>>
>>> Ricardo Wurmus writes:
>>>
>>>> Roel Janssen <roel@gnu.org> writes:
>>>>
>>>>> From f0cb8c476e902e3351988f7c278b3682837c8cce Mon Sep 17 00:00:00 2001
>>>>> From: Roel Janssen <roel@gnu.org>
>>>>> Date: Tue, 22 Mar 2016 15:47:06 +0100
>>>>> Subject: [PATCH 5/8] gnu: Add filevercmp.
>>>>
>>>>> * gnu/packages/bioinformatics.scm (filevercmp): New variable.

[...]

>> I see that my comment was ambiguous.  I meant the argument to
>> “(file-name ...)”.  Instead of using “filevercmp-src.tar.gz” I think it
>> would be better to include the generated version number by doing
>> something like this:
>>
>>     (file-name (string-append name "-" version ".tar.gz"))
>
> Oh, of course.  I attached an updated patch.

Pushed as 6b49a37.  Thanks!

~~ Ricardo

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

* Re: [PATCH] Add vcflib.
  2016-04-22  7:24   ` Roel Janssen
@ 2016-04-26 14:47     ` Ricardo Wurmus
  2016-04-26 17:31       ` Roel Janssen
  0 siblings, 1 reply; 30+ messages in thread
From: Ricardo Wurmus @ 2016-04-26 14:47 UTC (permalink / raw)
  To: Roel Janssen; +Cc: guix-devel


Roel Janssen <roel@gnu.org> writes:

> Hello Ricardo,
>
> Thank you for your review.
>
> Ricardo Wurmus writes:
>
>> Roel Janssen <roel@gnu.org> writes:
>>> From dfc9b373bbce0f36882407cec47440a0a44c78d1 Mon Sep 17 00:00:00 2001
>>> From: Roel Janssen <roel@gnu.org>
>>> Date: Tue, 22 Mar 2016 14:59:05 +0100
>>> Subject: [PATCH 1/8] gnu: Add tabixpp.
>>
>>> * gnu/packages/bioinformatics.scm (tabixpp): New variable.
>>> ---
>>>  gnu/packages/bioinformatics.scm | 39 +++++++++++++++++++++++++++++++++++++++
>>>  1 file changed, 39 insertions(+)
>>
>>> diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
>>> index 281bd1f..6792be9 100644
>>> --- a/gnu/packages/bioinformatics.scm
>>> +++ b/gnu/packages/bioinformatics.scm
>>> @@ -4791,3 +4791,42 @@ negative binomial distribution to model the read counts among the samples in
>>>  the same group, and look for consistent differences between ChIP and control
>>>  group or two ChIP groups run under different conditions.")
>>>      (license license:gpl3+)))
>>> +
>>> +(define-public tabixpp
>>> +  (package
>>> +   (name "tabixpp")
>>> +   (version "1.0.0")
>>> +   (source (origin
>>> +     (method url-fetch)
>>> +     (uri (string-append "https://github.com/ekg/tabixpp/archive/v"
>>> +                         version ".tar.gz"))
>>> +     (file-name (string-append name "-" version ".tar.gz"))
>>> +     (sha256
>>> +      (base32 "1s0lgks7qlvlhvcjhi2wm18nnza1bwcnic44ij7z8wfg88h4ivwn"))))
>>> +   (build-system gnu-build-system)
>>> +   (inputs
>>> +    `(("htslib" ,htslib)
>>> +      ("zlib" ,zlib)))
>>> +   (arguments
>>> +    `(#:tests? #f ; There are no tests to run.
>>> +      #:phases
>>> +      (modify-phases %standard-phases
>>> +        (delete 'configure) ; There is no configure phase.
>>> +        ;; Modify the build phase to use the separately packaged htslib.
>>> +        (replace 'build
>>> +          (lambda* (#:key inputs #:allow-other-keys)
>>> +            (let ((htslib-ref (assoc-ref inputs "htslib")))
>>> +              (zero?
>>> +               (system* "make"
>>> +                 (string-append "HTS_LIB=" htslib-ref "/lib/libhts.a")
>>> +                 "HTS_HEADERS=" ; Do not check for local htslib headers.
>>> +                 (string-append "LIBPATH=-L. -L" htslib-ref
>>> "/include"))))))
>>
>> Is this really necessary or could you use make-flags instead?  That
>> would be the preferred way of doing this rather than replacing the build
>> phase.
>
> So I had tried, but my Scheme skills failed there.
> In the new patch I used make-flags instead.  I hope the (let ...) is
> appropriate there.  I like it because it allows me to stay within 80
> columns, and avoid repetitive (assoc-ref %build-inputs "htslib").
>
>>> +        (replace 'install
>>> +          (lambda* (#:key outputs #:allow-other-keys)
>>> +            (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
>>> +              (install-file "tabix++" bin)))))))
>>> +   (home-page "https://github.com/ekg/tabixpp")
>>> +   (synopsis "C++ wrapper around tabix project")
>>
>> “tabix” or “Tabix”?
>
> Tabix I suppose.
>
>>> +   (description "This is a C++ wrapper around the Tabix project which abstracts
>>> +some of the details of opening and jumping in tabix-indexed files.")
>>> +   (license license:expat)))
>>
>> “tabix” or “Tabix”?
>
> Right.  I changed both occurrences to “Tabix”.
>
>> Could you please send an updated patch?
>
> Here it is.

Thanks, looks good, except for having the inputs before the arguments.
I tried to apply the patch to master but it failed.  Could you please
rebase it onto master and resend?

~~ Ricardo

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

* Re: [PATCH] Add vcflib.
  2016-04-22  7:40   ` Roel Janssen
@ 2016-04-26 14:47     ` Ricardo Wurmus
  2016-04-26 17:37       ` Roel Janssen
  0 siblings, 1 reply; 30+ messages in thread
From: Ricardo Wurmus @ 2016-04-26 14:47 UTC (permalink / raw)
  To: Roel Janssen; +Cc: guix-devel


Roel Janssen <roel@gnu.org> writes:

> Ricardo Wurmus writes:
>
>> Roel Janssen <roel@gnu.org> writes:
>>
>>> From edcf3132dca6c3e86439710892870285377adbb2 Mon Sep 17 00:00:00 2001
>>> From: Roel Janssen <roel@gnu.org>
>>> Date: Tue, 22 Mar 2016 15:07:47 +0100
>>> Subject: [PATCH 3/8] gnu: Add multichoose.
>>
>>> * gnu/packages/bioinformatics.scm (multichoose): New variable.
>>> ---
>>>  gnu/packages/bioinformatics.scm | 35 +++++++++++++++++++++++++++++++++++
>>>  1 file changed, 35 insertions(+)
>>
>>> diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
>>> index fa7ba24..9465d56 100644
>>> --- a/gnu/packages/bioinformatics.scm
>>> +++ b/gnu/packages/bioinformatics.scm
>>> @@ -4861,3 +4861,38 @@ algorithm.")
>>>        ;; this program is a submodule, is licensed MIT, which is the same as
>>>        ;; the Expat license.
>>>        (license (list license:gpl2 license:expat)))))
>>> +
>>> +(define-public multichoose
>>> +  (package
>>> +    (name "multichoose")
>>> +    (version "1.0.3")
>>> +    (source (origin
>>> +      (method url-fetch)
>>> +      (uri (string-append "https://github.com/ekg/multichoose/archive/v"
>>> +                          version ".tar.gz"))
>>> +      (file-name (string-append name "-" version ".tar.gz"))
>>> +      (sha256
>>> +       (base32 "0xy86vvr3qrs4l81qis7ia1q2hnqv0xcb4a1n60smxbhqqis5w3l"))))
>>> +    (build-system gnu-build-system)
>>> +    (native-inputs
>>> +     `(("python" ,python-2)
>>> +       ("node" ,node)))
>>> +    (arguments
>>> +     `(#:tests? #f ; There are no tests to run.
>>> +       #:phases
>>> +       (modify-phases %standard-phases
>>> +         (delete 'configure) ; There is no configure phase.
>>> +         (replace 'install
>>> +           (lambda* (#:key outputs #:allow-other-keys)
>>> +             (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
>>> +               (install-file "multichoose" bin)
>>> +               (install-file "multipermute" bin)))))))
>>
>> Nitpick: normally, we place the arguments right below the
>> “build-system”.  The “native-inputs” then follow after “arguments”.
>
> Ok.  I fixed this in the new patch.
>
>>> +    (home-page "https://github.com/ekg/multichoose")
>>> +    (synopsis "Library for efficient loopless multiset combination generation
>>> +algorithm")
>>
>> This synopsis is a bit long.  Maybe drop “efficient”?  (Most projects
>> include “efficient” or “fast” in their descriptions, so it isn’t very
>> useful in a synopsis.)
>
> I dropped efficient.  A bit sad it doesn't keep the synopsis on a single
> line.  I cannot think of a shorter way to describe this library.
>
>>> +    (description "A library implements an efficient loopless multiset
>>> +combination generation algorithm which is (approximately) described in
>>> +\"Loopless algorithms for generating permutations, combinations, and other
>>> +combinatorial configurations.\" G Ehrlich - Journal of the ACM (JACM),
>>> +1973. (Algorithm 7.)")
>>
>> “A library”?  How about “This package provides a library implementing...”
>
> Yes, that's better.  That reminds me to double-check descriptions for
> complete sentences.  Thanks for catching this.
>
>
> I attached a new patch.

The patch looks good.  I tried to apply this to master but failed.
Could you please try to rebase it onto master?

~~ Ricardo

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

* Re: [PATCH] Add vcflib.
  2016-04-26 14:47     ` Ricardo Wurmus
@ 2016-04-26 17:31       ` Roel Janssen
  2017-01-16 21:59         ` Ricardo Wurmus
  0 siblings, 1 reply; 30+ messages in thread
From: Roel Janssen @ 2016-04-26 17:31 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: guix-devel

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: 0001-gnu-Add-tabixpp-v2.patch --]
[-- Type: text/x-patch, Size: 2237 bytes --]

From 5cc17f0ceca12998a658dcd3cfd7494b137274e1 Mon Sep 17 00:00:00 2001
From: Roel Janssen <roel@gnu.org>
Date: Tue, 26 Apr 2016 19:28:54 +0200
Subject: [PATCH] gnu: Add tabixpp.

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

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 620439f..450d250 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -5102,3 +5102,37 @@ group or two ChIP groups run under different conditions.")
       (description "This program compares version strings.  It intends to be a
 replacement for strverscmp.")
       (license license:gpl3+))))
+
+(define-public tabixpp
+  (package
+   (name "tabixpp")
+   (version "1.0.0")
+   (source (origin
+     (method url-fetch)
+     (uri (string-append "https://github.com/ekg/tabixpp/archive/v"
+                         version ".tar.gz"))
+     (file-name (string-append name "-" version ".tar.gz"))
+     (sha256
+      (base32 "1s0lgks7qlvlhvcjhi2wm18nnza1bwcnic44ij7z8wfg88h4ivwn"))))
+   (build-system gnu-build-system)
+   (arguments
+    `(#:tests? #f ; There are no tests to run.
+      #:make-flags (let ((htslib-ref (assoc-ref %build-inputs "htslib")))
+                    `("HTS_HEADERS=" ; Do not check for local htslib headers.
+                      ,(string-append "HTS_LIB=" htslib-ref "/lib/libhts.a")
+                      ,(string-append "LIBPATH=-L. -L" htslib-ref "/include")))
+      #:phases
+      (modify-phases %standard-phases
+        (delete 'configure) ; There is no configure phase.
+        (replace 'install
+          (lambda* (#:key outputs #:allow-other-keys)
+            (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
+              (install-file "tabix" bin)))))))
+   (inputs
+    `(("htslib" ,htslib)
+      ("zlib" ,zlib)))
+   (home-page "https://github.com/ekg/tabixpp")
+   (synopsis "C++ wrapper around Tabix project")
+   (description "This is a C++ wrapper around the Tabix project which abstracts
+some of the details of opening and jumping in Tabix-indexed files.")
+   (license license:expat)))
-- 
2.7.4


[-- Attachment #2: Type: text/plain, Size: 1172 bytes --]


Ricardo Wurmus writes:

> Roel Janssen <roel@gnu.org> writes:
>
>> Hello Ricardo,
>>
>> Thank you for your review.
>>
>> Ricardo Wurmus writes:
>>>> +        (replace 'install
>>>> +          (lambda* (#:key outputs #:allow-other-keys)
>>>> +            (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
>>>> +              (install-file "tabix++" bin)))))))
>>>> +   (home-page "https://github.com/ekg/tabixpp")
>>>> +   (synopsis "C++ wrapper around tabix project")
>>>
>>> “tabix” or “Tabix”?
>>
>> Tabix I suppose.
>>
>>>> +   (description "This is a C++ wrapper around the Tabix project which abstracts
>>>> +some of the details of opening and jumping in tabix-indexed files.")
>>>> +   (license license:expat)))
>>>
>>> “tabix” or “Tabix”?
>>
>> Right.  I changed both occurrences to “Tabix”.
>>
>>> Could you please send an updated patch?
>>
>> Here it is.
>
> Thanks, looks good, except for having the inputs before the arguments.
> I tried to apply the patch to master but it failed.  Could you please
> rebase it onto master and resend?

Attached a new patch with the inputs after arguments.

Thanks!

Kind regards,
Roel Janssen

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

* Re: [PATCH] Add vcflib.
  2016-04-26 14:47     ` Ricardo Wurmus
@ 2016-04-26 17:37       ` Roel Janssen
  2017-01-16 21:56         ` Ricardo Wurmus
  0 siblings, 1 reply; 30+ messages in thread
From: Roel Janssen @ 2016-04-26 17:37 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: guix-devel

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: 0001-gnu-Add-multichoose-v2.patch --]
[-- Type: text/x-patch, Size: 2315 bytes --]

From 80d296f9d3bc205eed06f98821bb5abd3ad8d40f Mon Sep 17 00:00:00 2001
From: Roel Janssen <roel@gnu.org>
Date: Tue, 26 Apr 2016 19:35:10 +0200
Subject: [PATCH] gnu: Add multichoose.

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

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 620439f..b3686b6 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -5075,6 +5075,40 @@ the same group, and look for consistent differences between ChIP and control
 group or two ChIP groups run under different conditions.")
     (license license:gpl3+)))
 
+(define-public multichoose
+  (package
+    (name "multichoose")
+    (version "1.0.3")
+    (source (origin
+      (method url-fetch)
+      (uri (string-append "https://github.com/ekg/multichoose/archive/v"
+                          version ".tar.gz"))
+      (file-name (string-append name "-" version ".tar.gz"))
+      (sha256
+       (base32 "0xy86vvr3qrs4l81qis7ia1q2hnqv0xcb4a1n60smxbhqqis5w3l"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f ; There are no tests to run.
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure) ; There is no configure phase.
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
+               (install-file "multichoose" bin)
+               (install-file "multipermute" bin)))))))
+    (native-inputs
+     `(("python" ,python-2)
+       ("node" ,node)))
+    (home-page "https://github.com/ekg/multichoose")
+    (synopsis "Library for loopless multiset combination generation")
+    (description "This package provides a library implementing an efficient
+loopless multiset combination generation algorithm which is (approximately)
+described in \"Loopless algorithms for generating permutations, combinations,
+and other combinatorial configurations.\" G Ehrlich - Journal of the ACM (JACM),
+1973. (Algorithm 7.)")
+    (license license:expat)))
+
 (define-public filevercmp
   (let ((commit "1a9b779b93d0b244040274794d402106907b71b7"))
     (package
-- 
2.7.4


[-- Attachment #2: Type: text/plain, Size: 3531 bytes --]


Ricardo Wurmus writes:

> Roel Janssen <roel@gnu.org> writes:
>
>> Ricardo Wurmus writes:
>>
>>> Roel Janssen <roel@gnu.org> writes:
>>>
>>>> From edcf3132dca6c3e86439710892870285377adbb2 Mon Sep 17 00:00:00 2001
>>>> From: Roel Janssen <roel@gnu.org>
>>>> Date: Tue, 22 Mar 2016 15:07:47 +0100
>>>> Subject: [PATCH 3/8] gnu: Add multichoose.
>>>
>>>> * gnu/packages/bioinformatics.scm (multichoose): New variable.
>>>> ---
>>>>  gnu/packages/bioinformatics.scm | 35 +++++++++++++++++++++++++++++++++++
>>>>  1 file changed, 35 insertions(+)
>>>
>>>> diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
>>>> index fa7ba24..9465d56 100644
>>>> --- a/gnu/packages/bioinformatics.scm
>>>> +++ b/gnu/packages/bioinformatics.scm
>>>> @@ -4861,3 +4861,38 @@ algorithm.")
>>>>        ;; this program is a submodule, is licensed MIT, which is the same as
>>>>        ;; the Expat license.
>>>>        (license (list license:gpl2 license:expat)))))
>>>> +
>>>> +(define-public multichoose
>>>> +  (package
>>>> +    (name "multichoose")
>>>> +    (version "1.0.3")
>>>> +    (source (origin
>>>> +      (method url-fetch)
>>>> +      (uri (string-append "https://github.com/ekg/multichoose/archive/v"
>>>> +                          version ".tar.gz"))
>>>> +      (file-name (string-append name "-" version ".tar.gz"))
>>>> +      (sha256
>>>> +       (base32 "0xy86vvr3qrs4l81qis7ia1q2hnqv0xcb4a1n60smxbhqqis5w3l"))))
>>>> +    (build-system gnu-build-system)
>>>> +    (native-inputs
>>>> +     `(("python" ,python-2)
>>>> +       ("node" ,node)))
>>>> +    (arguments
>>>> +     `(#:tests? #f ; There are no tests to run.
>>>> +       #:phases
>>>> +       (modify-phases %standard-phases
>>>> +         (delete 'configure) ; There is no configure phase.
>>>> +         (replace 'install
>>>> +           (lambda* (#:key outputs #:allow-other-keys)
>>>> +             (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
>>>> +               (install-file "multichoose" bin)
>>>> +               (install-file "multipermute" bin)))))))
>>>
>>> Nitpick: normally, we place the arguments right below the
>>> “build-system”.  The “native-inputs” then follow after “arguments”.
>>
>> Ok.  I fixed this in the new patch.
>>
>>>> +    (home-page "https://github.com/ekg/multichoose")
>>>> +    (synopsis "Library for efficient loopless multiset combination generation
>>>> +algorithm")
>>>
>>> This synopsis is a bit long.  Maybe drop “efficient”?  (Most projects
>>> include “efficient” or “fast” in their descriptions, so it isn’t very
>>> useful in a synopsis.)
>>
>> I dropped efficient.  A bit sad it doesn't keep the synopsis on a single
>> line.  I cannot think of a shorter way to describe this library.
>>
>>>> +    (description "A library implements an efficient loopless multiset
>>>> +combination generation algorithm which is (approximately) described in
>>>> +\"Loopless algorithms for generating permutations, combinations, and other
>>>> +combinatorial configurations.\" G Ehrlich - Journal of the ACM (JACM),
>>>> +1973. (Algorithm 7.)")
>>>
>>> “A library”?  How about “This package provides a library implementing...”
>>
>> Yes, that's better.  That reminds me to double-check descriptions for
>> complete sentences.  Thanks for catching this.
>>
>>
>> I attached a new patch.
>
> The patch looks good.  I tried to apply this to master but failed.
> Could you please try to rebase it onto master?

Yes, here it is.

Thanks!

Kind regards,
Roel Janssen

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

* Re: [PATCH] Add vcflib.
  2016-04-20 13:08 ` Ricardo Wurmus
@ 2016-04-26 17:50   ` Roel Janssen
  2016-04-26 17:51     ` Roel Janssen
  0 siblings, 1 reply; 30+ messages in thread
From: Roel Janssen @ 2016-04-26 17:50 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: guix-devel


Ricardo Wurmus writes:

> Roel Janssen <roel@gnu.org> writes:
>> From 3ed14719121a952fca48a8ad3426588ebb58a130 Mon Sep 17 00:00:00 2001
>> From: Roel Janssen <roel@gnu.org>
>> Date: Tue, 22 Mar 2016 15:57:33 +0100
>> Subject: [PATCH 7/8] gnu: Add intervaltree.
>
>> * gnu/packages/bioinformatics.scm (intervaltree): New variable.
>> ---
>>  gnu/packages/bioinformatics.scm | 32 ++++++++++++++++++++++++++++++++
>>  1 file changed, 32 insertions(+)
>
>> diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
>> index 9cbde46..5a0eb16 100644
>> --- a/gnu/packages/bioinformatics.scm
>> +++ b/gnu/packages/bioinformatics.scm
>> @@ -4985,3 +4985,35 @@ automatically handles index file generation and use.")
>>        ;; this program is a submodule, is licensed MIT, which is the same as
>>        ;; the Expat license.
>>        (license (list license:gpl2 license:expat)))))
>> +
>> +(define-public intervaltree
>> +  (let ((commit "dbb4c513d1ad3baac516fc1484c995daf9b42838"))
>> +    (package
>> +      (name "intervaltree")
>> +      (version (string-append "0-1." (string-take commit 7)))
>> +      (source (origin
>> +        (method url-fetch)
>> +        (uri (string-append
>> +              "https://github.com/ekg/intervaltree/archive/" commit ".tar.gz"))
>> +        (file-name (string-append name "-" version ".tar.gz"))
>> +        (sha256
>> +         (base32 "19prwpn2wxsrijp5svfqvfcxl5nj7zdhm3jycd5kqhl9nifpmcks"))))
>> +      (build-system gnu-build-system)
>> +      (arguments
>> +       `(#:phases
>> +         (modify-phases %standard-phases
>> +           (delete 'configure) ; There is no configure phase.
>> +           (replace 'check
>> +             (lambda _
>> +                (zero? (system* "./interval_tree_test"))))
>
> The indentation looks wrong here.  Could you please double-check that
> you’re not using tabs?

I don't know what went wrong there, sorry.  Attached a new patch that
should be better.

>> +           (replace 'install
>> +             (lambda* (#:key outputs #:allow-other-keys)
>> +               (let ((include (string-append (assoc-ref outputs "out")
>> +                                             "/include/intervaltree")))
>> +                 (install-file "IntervalTree.h" include)))))))
>> +      (home-page "https://github.com/ekg/intervaltree/")
>> +      (synopsis "Minimal C++ interval tree implementation")
>> +      (description "This library provides a basic implementation of an interval
>> +tree using C++ templates, allowing the insertion of arbitrary types into the
>> +tree.")
>> +      (license license:expat))))
>
> The rest looks good to me.

Thanks a lot for reviewing my patches!

Kind regards,
Roel Janssen

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

* Re: [PATCH] Add vcflib.
  2016-04-26 17:50   ` Roel Janssen
@ 2016-04-26 17:51     ` Roel Janssen
  2017-01-16 21:54       ` Ricardo Wurmus
  0 siblings, 1 reply; 30+ messages in thread
From: Roel Janssen @ 2016-04-26 17:51 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: guix-devel

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: 0001-gnu-Add-intervaltree-v2.patch --]
[-- Type: text/x-patch, Size: 2195 bytes --]

From 98ed1adae91aca2c118779f5333dc21446f1c720 Mon Sep 17 00:00:00 2001
From: Roel Janssen <roel@gnu.org>
Date: Tue, 26 Apr 2016 19:48:31 +0200
Subject: [PATCH] gnu: Add intervaltree.

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

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 620439f..9ad6c38 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -885,6 +885,38 @@ well as many of the command line options.")
 multiple sequence alignments.")
     (license license:expat)))
 
+(define-public intervaltree
+  (let ((commit "dbb4c513d1ad3baac516fc1484c995daf9b42838"))
+    (package
+      (name "intervaltree")
+      (version (string-append "0-1." (string-take commit 7)))
+      (source (origin
+        (method url-fetch)
+        (uri (string-append "https://github.com/ekg/intervaltree/archive/"
+                            commit ".tar.gz"))
+        (file-name (string-append name "-" version ".tar.gz"))
+        (sha256
+         (base32 "19prwpn2wxsrijp5svfqvfcxl5nj7zdhm3jycd5kqhl9nifpmcks"))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           (delete 'configure) ; There is no configure phase.
+           (replace 'check
+             (lambda _
+               (zero? (system* "./interval_tree_test"))))
+           (replace 'install
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let ((include (string-append (assoc-ref outputs "out")
+                                             "/include/intervaltree")))
+                 (install-file "IntervalTree.h" include)))))))
+      (home-page "https://github.com/ekg/intervaltree/")
+      (synopsis "Minimal C++ interval tree implementation")
+      (description "This library provides a basic implementation of an interval
+tree using C++ templates, allowing the insertion of arbitrary types into the
+tree.")
+      (license license:expat))))
+
 (define-public python-pysam
   (package
     (name "python-pysam")
-- 
2.7.4


[-- Attachment #2: Type: text/plain, Size: 2839 bytes --]

This time, it is attached :).

Roel Janssen writes:

> Ricardo Wurmus writes:
>
>> Roel Janssen <roel@gnu.org> writes:
>>> From 3ed14719121a952fca48a8ad3426588ebb58a130 Mon Sep 17 00:00:00 2001
>>> From: Roel Janssen <roel@gnu.org>
>>> Date: Tue, 22 Mar 2016 15:57:33 +0100
>>> Subject: [PATCH 7/8] gnu: Add intervaltree.
>>
>>> * gnu/packages/bioinformatics.scm (intervaltree): New variable.
>>> ---
>>>  gnu/packages/bioinformatics.scm | 32 ++++++++++++++++++++++++++++++++
>>>  1 file changed, 32 insertions(+)
>>
>>> diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
>>> index 9cbde46..5a0eb16 100644
>>> --- a/gnu/packages/bioinformatics.scm
>>> +++ b/gnu/packages/bioinformatics.scm
>>> @@ -4985,3 +4985,35 @@ automatically handles index file generation and use.")
>>>        ;; this program is a submodule, is licensed MIT, which is the same as
>>>        ;; the Expat license.
>>>        (license (list license:gpl2 license:expat)))))
>>> +
>>> +(define-public intervaltree
>>> +  (let ((commit "dbb4c513d1ad3baac516fc1484c995daf9b42838"))
>>> +    (package
>>> +      (name "intervaltree")
>>> +      (version (string-append "0-1." (string-take commit 7)))
>>> +      (source (origin
>>> +        (method url-fetch)
>>> +        (uri (string-append
>>> +              "https://github.com/ekg/intervaltree/archive/" commit ".tar.gz"))
>>> +        (file-name (string-append name "-" version ".tar.gz"))
>>> +        (sha256
>>> +         (base32 "19prwpn2wxsrijp5svfqvfcxl5nj7zdhm3jycd5kqhl9nifpmcks"))))
>>> +      (build-system gnu-build-system)
>>> +      (arguments
>>> +       `(#:phases
>>> +         (modify-phases %standard-phases
>>> +           (delete 'configure) ; There is no configure phase.
>>> +           (replace 'check
>>> +             (lambda _
>>> +                (zero? (system* "./interval_tree_test"))))
>>
>> The indentation looks wrong here.  Could you please double-check that
>> you’re not using tabs?
>
> I don't know what went wrong there, sorry.  Attached a new patch that
> should be better.
>
>>> +           (replace 'install
>>> +             (lambda* (#:key outputs #:allow-other-keys)
>>> +               (let ((include (string-append (assoc-ref outputs "out")
>>> +                                             "/include/intervaltree")))
>>> +                 (install-file "IntervalTree.h" include)))))))
>>> +      (home-page "https://github.com/ekg/intervaltree/")
>>> +      (synopsis "Minimal C++ interval tree implementation")
>>> +      (description "This library provides a basic implementation of an interval
>>> +tree using C++ templates, allowing the insertion of arbitrary types into the
>>> +tree.")
>>> +      (license license:expat))))
>>
>> The rest looks good to me.
>
> Thanks a lot for reviewing my patches!
>
> Kind regards,
> Roel Janssen


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

* Re: [PATCH] Add vcflib.
  2016-04-20 12:49 ` Ricardo Wurmus
@ 2016-04-26 21:50   ` Roel Janssen
  2017-01-16 22:04     ` Ricardo Wurmus
  0 siblings, 1 reply; 30+ messages in thread
From: Roel Janssen @ 2016-04-26 21:50 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: guix-devel


Ricardo Wurmus writes:

> Roel Janssen <roel@gnu.org> writes:
>
>> From e75aa388931c92657336c8a15f88b6a0273f5e02 Mon Sep 17 00:00:00 2001
>> From: Roel Janssen <roel@gnu.org>
>> Date: Tue, 22 Mar 2016 15:01:37 +0100
>> Subject: [PATCH 2/8] gnu: Add smithwaterman.
>
>> * gnu/packages/bioinformatics.scm (smithwaterman): New variable.
>> ---
>>  gnu/packages/bioinformatics.scm | 31 +++++++++++++++++++++++++++++++
>>  1 file changed, 31 insertions(+)
>
>> diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
>> index 6792be9..fa7ba24 100644
>> --- a/gnu/packages/bioinformatics.scm
>> +++ b/gnu/packages/bioinformatics.scm
>> @@ -4830,3 +4830,34 @@ group or two ChIP groups run under different conditions.")
>>     (description "This is a C++ wrapper around the Tabix project which abstracts
>>  some of the details of opening and jumping in tabix-indexed files.")
>>     (license license:expat)))
>> +
>> +(define-public smithwaterman
>> +  (let ((commit "203218b47d45ac56ef234716f1bd4c741b289be1"))
>
> As there have been new commits since you posted this patch could you add
> a comment that explains why it should be this particular commit?  Is it
> because this is the version of the submodule of vcflib?

That is the reason.  I will add a comment in the next patch I send.

>> +    (package
>> +      (name "smithwaterman")
>> +      (version (string-append "0-1." (string-take commit 7)))
>> +      (source (origin
>> +        (method url-fetch)
>> +        (uri (string-append "https://github.com/ekg/smithwaterman/archive/"
>> +                            commit ".tar.gz"))
>> +        (file-name (string-append name "-" version "-checkout.tar.gz"))
>> +        (sha256
>> +         (base32 "1lkxy4xkjn96l70jdbsrlm687jhisgw4il0xr2dm33qwcclzzm3b"))))
>> +      (build-system gnu-build-system)
>> +      (arguments
>> +       `(#:tests? #f ; There are no tests to run.
>> +         #:phases
>> +         (modify-phases %standard-phases
>> +           (delete 'configure) ; There is no configure phase.
>> +           (replace 'install
>> +             (lambda* (#:key outputs #:allow-other-keys)
>> +               (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
>> +                 (install-file "smithwaterman" bin)))))))
>> +      (home-page "https://github.com/ekg/smithwaterman")
>> +      (synopsis "Implementation of the Smith-Waterman algorithm")
>> +      (description "This package provides an implementation of the Smith-Waterman
>> +algorithm.")
>> +      ;; libdisorder is licensed GPLv2.  The parent project (vcflib), of which
>> +      ;; this program is a submodule, is licensed MIT, which is the same as
>> +      ;; the Expat license.
>> +      (license (list license:gpl2 license:expat)))))
>
> As far as I can see the license is GPLv2+ as it doesn’t specifically
> restricts users to version 2.
>
> The license of the parent project doesn’t matter in this case, so
> “(license license:gpl2+)” would seem to be enough.

Where can you see that it's GPLv2+?  I haven't found any licensing
information other than libdisorder.

I contacted the author about this.  I'm confident it's not an
intentional nonfree program, but we will have to wait and see.

Kind regards,
Roel Janssen

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

* Re: [PATCH] Add vcflib.
  2016-04-26 17:51     ` Roel Janssen
@ 2017-01-16 21:54       ` Ricardo Wurmus
  2017-01-17 21:57         ` Roel Janssen
  0 siblings, 1 reply; 30+ messages in thread
From: Ricardo Wurmus @ 2017-01-16 21:54 UTC (permalink / raw)
  To: Roel Janssen; +Cc: guix-devel


Roel Janssen <roel@gnu.org> writes:

> From 98ed1adae91aca2c118779f5333dc21446f1c720 Mon Sep 17 00:00:00 2001
> From: Roel Janssen <roel@gnu.org>
> Date: Tue, 26 Apr 2016 19:48:31 +0200
> Subject: [PATCH] gnu: Add intervaltree.
>
> * gnu/packages/bioinformatics.scm (intervaltree): New variable.
> ---
>  gnu/packages/bioinformatics.scm | 32 ++++++++++++++++++++++++++++++++
>  1 file changed, 32 insertions(+)
>
> diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
> index 620439f..9ad6c38 100644
> --- a/gnu/packages/bioinformatics.scm
> +++ b/gnu/packages/bioinformatics.scm
> @@ -885,6 +885,38 @@ well as many of the command line options.")
>  multiple sequence alignments.")
>      (license license:expat)))
>  
> +(define-public intervaltree
> +  (let ((commit "dbb4c513d1ad3baac516fc1484c995daf9b42838"))
> +    (package
> +      (name "intervaltree")
> +      (version (string-append "0-1." (string-take commit 7)))
> +      (source (origin
> +        (method url-fetch)
> +        (uri (string-append "https://github.com/ekg/intervaltree/archive/"
> +                            commit ".tar.gz"))
> +        (file-name (string-append name "-" version ".tar.gz"))
> +        (sha256
> +         (base32 "19prwpn2wxsrijp5svfqvfcxl5nj7zdhm3jycd5kqhl9nifpmcks"))))
> +      (build-system gnu-build-system)
> +      (arguments
> +       `(#:phases
> +         (modify-phases %standard-phases
> +           (delete 'configure) ; There is no configure phase.
> +           (replace 'check
> +             (lambda _
> +               (zero? (system* "./interval_tree_test"))))
> +           (replace 'install
> +             (lambda* (#:key outputs #:allow-other-keys)
> +               (let ((include (string-append (assoc-ref outputs "out")
> +                                             "/include/intervaltree")))
> +                 (install-file "IntervalTree.h" include)))))))
> +      (home-page "https://github.com/ekg/intervaltree/")
> +      (synopsis "Minimal C++ interval tree implementation")
> +      (description "This library provides a basic implementation of an interval
> +tree using C++ templates, allowing the insertion of arbitrary types into the
> +tree.")
> +      (license license:expat))))
> +
>  (define-public python-pysam
>    (package
>      (name "python-pysam")

That’s a nice patch that doesn’t seem to be in Guix yet.  It was part of
your vcflib series, but it never made it upstream.  Would you like to
rebase and push it?

-- 
Ricardo

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

* Re: [PATCH] Add vcflib.
  2016-04-26 17:37       ` Roel Janssen
@ 2017-01-16 21:56         ` Ricardo Wurmus
  0 siblings, 0 replies; 30+ messages in thread
From: Ricardo Wurmus @ 2017-01-16 21:56 UTC (permalink / raw)
  To: Roel Janssen; +Cc: guix-devel


Roel Janssen <roel@gnu.org> writes:

> From 80d296f9d3bc205eed06f98821bb5abd3ad8d40f Mon Sep 17 00:00:00 2001
> From: Roel Janssen <roel@gnu.org>
> Date: Tue, 26 Apr 2016 19:35:10 +0200
> Subject: [PATCH] gnu: Add multichoose.
>
> * gnu/packages/bioinformatics.scm (multichoose): New variable.
> ---
>  gnu/packages/bioinformatics.scm | 34 ++++++++++++++++++++++++++++++++++
>  1 file changed, 34 insertions(+)
>
> diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
> index 620439f..b3686b6 100644
> --- a/gnu/packages/bioinformatics.scm
> +++ b/gnu/packages/bioinformatics.scm
> @@ -5075,6 +5075,40 @@ the same group, and look for consistent differences between ChIP and control
>  group or two ChIP groups run under different conditions.")
>      (license license:gpl3+)))
>  
> +(define-public multichoose
> +  (package
> +    (name "multichoose")
> +    (version "1.0.3")
> +    (source (origin
> +      (method url-fetch)
> +      (uri (string-append "https://github.com/ekg/multichoose/archive/v"
> +                          version ".tar.gz"))
> +      (file-name (string-append name "-" version ".tar.gz"))
> +      (sha256
> +       (base32 "0xy86vvr3qrs4l81qis7ia1q2hnqv0xcb4a1n60smxbhqqis5w3l"))))
> +    (build-system gnu-build-system)
> +    (arguments
> +     `(#:tests? #f ; There are no tests to run.
> +       #:phases
> +       (modify-phases %standard-phases
> +         (delete 'configure) ; There is no configure phase.
> +         (replace 'install
> +           (lambda* (#:key outputs #:allow-other-keys)
> +             (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
> +               (install-file "multichoose" bin)
> +               (install-file "multipermute" bin)))))))
> +    (native-inputs
> +     `(("python" ,python-2)
> +       ("node" ,node)))
> +    (home-page "https://github.com/ekg/multichoose")
> +    (synopsis "Library for loopless multiset combination generation")
> +    (description "This package provides a library implementing an efficient
> +loopless multiset combination generation algorithm which is (approximately)
> +described in \"Loopless algorithms for generating permutations, combinations,
> +and other combinatorial configurations.\" G Ehrlich - Journal of the ACM (JACM),
> +1973. (Algorithm 7.)")
> +    (license license:expat)))
> +
>  (define-public filevercmp
>    (let ((commit "1a9b779b93d0b244040274794d402106907b71b7"))
>      (package

This one is also not in Guix upstream yet.  Must have fallen through the
cracks.  This could be pushed after adding “#t” to the end of the new
“install” phase.

-- 
Ricardo

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

* Re: [PATCH] Add vcflib.
  2016-04-26 17:31       ` Roel Janssen
@ 2017-01-16 21:59         ` Ricardo Wurmus
  0 siblings, 0 replies; 30+ messages in thread
From: Ricardo Wurmus @ 2017-01-16 21:59 UTC (permalink / raw)
  To: Roel Janssen; +Cc: guix-devel


Roel Janssen <roel@gnu.org> writes:

> From 5cc17f0ceca12998a658dcd3cfd7494b137274e1 Mon Sep 17 00:00:00 2001
> From: Roel Janssen <roel@gnu.org>
> Date: Tue, 26 Apr 2016 19:28:54 +0200
> Subject: [PATCH] gnu: Add tabixpp.
>
> * gnu/packages/bioinformatics.scm (tabixpp): New variable.
> ---
>  gnu/packages/bioinformatics.scm | 34 ++++++++++++++++++++++++++++++++++
>  1 file changed, 34 insertions(+)
>
> diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
> index 620439f..450d250 100644
> --- a/gnu/packages/bioinformatics.scm
> +++ b/gnu/packages/bioinformatics.scm
> @@ -5102,3 +5102,37 @@ group or two ChIP groups run under different conditions.")
>        (description "This program compares version strings.  It intends to be a
>  replacement for strverscmp.")
>        (license license:gpl3+))))
> +
> +(define-public tabixpp
> +  (package
> +   (name "tabixpp")
> +   (version "1.0.0")
> +   (source (origin
> +     (method url-fetch)
> +     (uri (string-append "https://github.com/ekg/tabixpp/archive/v"
> +                         version ".tar.gz"))
> +     (file-name (string-append name "-" version ".tar.gz"))
> +     (sha256
> +      (base32 "1s0lgks7qlvlhvcjhi2wm18nnza1bwcnic44ij7z8wfg88h4ivwn"))))
> +   (build-system gnu-build-system)
> +   (arguments
> +    `(#:tests? #f ; There are no tests to run.
> +      #:make-flags (let ((htslib-ref (assoc-ref %build-inputs "htslib")))
> +                    `("HTS_HEADERS=" ; Do not check for local htslib headers.
> +                      ,(string-append "HTS_LIB=" htslib-ref "/lib/libhts.a")
> +                      ,(string-append "LIBPATH=-L. -L" htslib-ref "/include")))
> +      #:phases
> +      (modify-phases %standard-phases
> +        (delete 'configure) ; There is no configure phase.
> +        (replace 'install
> +          (lambda* (#:key outputs #:allow-other-keys)
> +            (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
> +              (install-file "tabix" bin)))))))
> +   (inputs
> +    `(("htslib" ,htslib)
> +      ("zlib" ,zlib)))
> +   (home-page "https://github.com/ekg/tabixpp")
> +   (synopsis "C++ wrapper around Tabix project")
> +   (description "This is a C++ wrapper around the Tabix project which abstracts
> +some of the details of opening and jumping in Tabix-indexed files.")
> +   (license license:expat)))

One more from the bottom of my inbox at work…  (I haven’t even started
looking at my private inbox.)

Please add “#t” to the end of the “install” phase and adjust the
indentation of the make-flags.  The rest looks good.

Thanks!

--
Ricardo

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

* Re: [PATCH] Add vcflib.
  2016-04-26 21:50   ` Roel Janssen
@ 2017-01-16 22:04     ` Ricardo Wurmus
  0 siblings, 0 replies; 30+ messages in thread
From: Ricardo Wurmus @ 2017-01-16 22:04 UTC (permalink / raw)
  To: Roel Janssen; +Cc: guix-devel


Roel Janssen <roel@gnu.org> writes:

> Ricardo Wurmus writes:
>
>> Roel Janssen <roel@gnu.org> writes:
>>
>>> From e75aa388931c92657336c8a15f88b6a0273f5e02 Mon Sep 17 00:00:00 2001
>>> From: Roel Janssen <roel@gnu.org>
>>> Date: Tue, 22 Mar 2016 15:01:37 +0100
>>> Subject: [PATCH 2/8] gnu: Add smithwaterman.
>>
>>> * gnu/packages/bioinformatics.scm (smithwaterman): New variable.
>>> ---
>>>  gnu/packages/bioinformatics.scm | 31 +++++++++++++++++++++++++++++++
>>>  1 file changed, 31 insertions(+)
>>
>>> diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
>>> index 6792be9..fa7ba24 100644
>>> --- a/gnu/packages/bioinformatics.scm
>>> +++ b/gnu/packages/bioinformatics.scm
>>> @@ -4830,3 +4830,34 @@ group or two ChIP groups run under different conditions.")
>>>     (description "This is a C++ wrapper around the Tabix project which abstracts
>>>  some of the details of opening and jumping in tabix-indexed files.")
>>>     (license license:expat)))
>>> +
>>> +(define-public smithwaterman
>>> +  (let ((commit "203218b47d45ac56ef234716f1bd4c741b289be1"))
>>
>> As there have been new commits since you posted this patch could you add
>> a comment that explains why it should be this particular commit?  Is it
>> because this is the version of the submodule of vcflib?
>
> That is the reason.  I will add a comment in the next patch I send.
>
>>> +    (package
>>> +      (name "smithwaterman")
>>> +      (version (string-append "0-1." (string-take commit 7)))
>>> +      (source (origin
>>> +        (method url-fetch)
>>> +        (uri (string-append "https://github.com/ekg/smithwaterman/archive/"
>>> +                            commit ".tar.gz"))
>>> +        (file-name (string-append name "-" version "-checkout.tar.gz"))
>>> +        (sha256
>>> +         (base32 "1lkxy4xkjn96l70jdbsrlm687jhisgw4il0xr2dm33qwcclzzm3b"))))
>>> +      (build-system gnu-build-system)
>>> +      (arguments
>>> +       `(#:tests? #f ; There are no tests to run.
>>> +         #:phases
>>> +         (modify-phases %standard-phases
>>> +           (delete 'configure) ; There is no configure phase.
>>> +           (replace 'install
>>> +             (lambda* (#:key outputs #:allow-other-keys)
>>> +               (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
>>> +                 (install-file "smithwaterman" bin)))))))
>>> +      (home-page "https://github.com/ekg/smithwaterman")
>>> +      (synopsis "Implementation of the Smith-Waterman algorithm")
>>> +      (description "This package provides an implementation of the Smith-Waterman
>>> +algorithm.")
>>> +      ;; libdisorder is licensed GPLv2.  The parent project (vcflib), of which
>>> +      ;; this program is a submodule, is licensed MIT, which is the same as
>>> +      ;; the Expat license.
>>> +      (license (list license:gpl2 license:expat)))))
>>
>> As far as I can see the license is GPLv2+ as it doesn’t specifically
>> restricts users to version 2.
>>
>> The license of the parent project doesn’t matter in this case, so
>> “(license license:gpl2+)” would seem to be enough.
>
> Where can you see that it's GPLv2+?  I haven't found any licensing
> information other than libdisorder.
>
> I contacted the author about this.  I'm confident it's not an
> intentional nonfree program, but we will have to wait and see.

I see that you’ve opened an issue on Github.  The project now contains a
LICENSE file with the text of the Expat license.  It would be better if
the author clearly stated that the LICENSE file does in fact apply to
the source files in the repository (either in a README or in file
headers).

--
Ricardo

GPG: BCA6 89B6 3655 3801 C3C6  2150 197A 5888 235F ACAC
http://elephly.net

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

* Re: [PATCH] Add vcflib.
  2017-01-16 21:54       ` Ricardo Wurmus
@ 2017-01-17 21:57         ` Roel Janssen
  2017-01-18  8:24           ` Ricardo Wurmus
  0 siblings, 1 reply; 30+ messages in thread
From: Roel Janssen @ 2017-01-17 21:57 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: guix-devel


Ricardo Wurmus writes:

> Roel Janssen <roel@gnu.org> writes:
>
>> From 98ed1adae91aca2c118779f5333dc21446f1c720 Mon Sep 17 00:00:00 2001
>> From: Roel Janssen <roel@gnu.org>
>> Date: Tue, 26 Apr 2016 19:48:31 +0200
>> Subject: [PATCH] gnu: Add intervaltree.
>>
>> * gnu/packages/bioinformatics.scm (intervaltree): New variable.
>> ---
>>  gnu/packages/bioinformatics.scm | 32 ++++++++++++++++++++++++++++++++
>>  1 file changed, 32 insertions(+)
>>
>> diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
>> index 620439f..9ad6c38 100644
>> --- a/gnu/packages/bioinformatics.scm
>> +++ b/gnu/packages/bioinformatics.scm
>> @@ -885,6 +885,38 @@ well as many of the command line options.")
>>  multiple sequence alignments.")
>>      (license license:expat)))
>>  
>> +(define-public intervaltree
>> +  (let ((commit "dbb4c513d1ad3baac516fc1484c995daf9b42838"))
>> +    (package
>> +      (name "intervaltree")
>> +      (version (string-append "0-1." (string-take commit 7)))
>> +      (source (origin
>> +        (method url-fetch)
>> +        (uri (string-append "https://github.com/ekg/intervaltree/archive/"
>> +                            commit ".tar.gz"))
>> +        (file-name (string-append name "-" version ".tar.gz"))
>> +        (sha256
>> +         (base32 "19prwpn2wxsrijp5svfqvfcxl5nj7zdhm3jycd5kqhl9nifpmcks"))))
>> +      (build-system gnu-build-system)
>> +      (arguments
>> +       `(#:phases
>> +         (modify-phases %standard-phases
>> +           (delete 'configure) ; There is no configure phase.
>> +           (replace 'check
>> +             (lambda _
>> +               (zero? (system* "./interval_tree_test"))))
>> +           (replace 'install
>> +             (lambda* (#:key outputs #:allow-other-keys)
>> +               (let ((include (string-append (assoc-ref outputs "out")
>> +                                             "/include/intervaltree")))
>> +                 (install-file "IntervalTree.h" include)))))))
>> +      (home-page "https://github.com/ekg/intervaltree/")
>> +      (synopsis "Minimal C++ interval tree implementation")
>> +      (description "This library provides a basic implementation of an interval
>> +tree using C++ templates, allowing the insertion of arbitrary types into the
>> +tree.")
>> +      (license license:expat))))
>> +
>>  (define-public python-pysam
>>    (package
>>      (name "python-pysam")
>
> That’s a nice patch that doesn’t seem to be in Guix yet.  It was part of
> your vcflib series, but it never made it upstream.  Would you like to
> rebase and push it?

That's an oldie indeed.  These patches intended to add freebayes.  The
freebayes patch I submitted no longer works, so I'll need to work on
that.  Before doing so, not all license issues have been resolved
(yet?), so let's wait for that.

Do you think it's useful for these patches to be committed regardless of
whether freebayes will be added?  If so, then I'll take the time to
rebase and push them.

Kind regards,
Roel Janssen

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

* Re: [PATCH] Add vcflib.
  2017-01-17 21:57         ` Roel Janssen
@ 2017-01-18  8:24           ` Ricardo Wurmus
  0 siblings, 0 replies; 30+ messages in thread
From: Ricardo Wurmus @ 2017-01-18  8:24 UTC (permalink / raw)
  To: Roel Janssen; +Cc: guix-devel


Roel Janssen <roel@gnu.org> writes:

> Ricardo Wurmus writes:
>
>> Roel Janssen <roel@gnu.org> writes:
>>
>>> From 98ed1adae91aca2c118779f5333dc21446f1c720 Mon Sep 17 00:00:00 2001
>>> From: Roel Janssen <roel@gnu.org>
>>> Date: Tue, 26 Apr 2016 19:48:31 +0200
>>> Subject: [PATCH] gnu: Add intervaltree.
>>>
>>> * gnu/packages/bioinformatics.scm (intervaltree): New variable.
[…]

> That's an oldie indeed.  These patches intended to add freebayes.  The
> freebayes patch I submitted no longer works, so I'll need to work on
> that.  Before doing so, not all license issues have been resolved
> (yet?), so let's wait for that.
>
> Do you think it's useful for these patches to be committed regardless of
> whether freebayes will be added?  If so, then I'll take the time to
> rebase and push them.

I think these patches are useful anyway.  If you used any special
versions or VC commits that were needed for freebayes then I’d prefer to
have the latest version now and add variants for freebayes when needed.

--
Ricardo

GPG: BCA6 89B6 3655 3801 C3C6  2150 197A 5888 235F ACAC
https://elephly.net

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

end of thread, other threads:[~2017-01-18  8:24 UTC | newest]

Thread overview: 30+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-03-22 15:24 [PATCH] Add vcflib Roel Janssen
2016-03-23 13:49 ` Ricardo Wurmus
2016-04-20 12:39   ` Roel Janssen
2016-04-20 12:46 ` Ricardo Wurmus
2016-04-22  7:24   ` Roel Janssen
2016-04-26 14:47     ` Ricardo Wurmus
2016-04-26 17:31       ` Roel Janssen
2017-01-16 21:59         ` Ricardo Wurmus
2016-04-20 12:49 ` Ricardo Wurmus
2016-04-26 21:50   ` Roel Janssen
2017-01-16 22:04     ` Ricardo Wurmus
2016-04-20 12:53 ` Ricardo Wurmus
2016-04-22  7:40   ` Roel Janssen
2016-04-26 14:47     ` Ricardo Wurmus
2016-04-26 17:37       ` Roel Janssen
2017-01-16 21:56         ` Ricardo Wurmus
2016-04-20 12:56 ` Ricardo Wurmus
2016-04-20 12:58 ` Ricardo Wurmus
2016-04-22  8:04   ` Roel Janssen
2016-04-22 11:27     ` Ricardo Wurmus
2016-04-25  9:20       ` Roel Janssen
2016-04-26 14:42         ` Ricardo Wurmus
2016-04-20 13:06 ` Ricardo Wurmus
2016-04-20 13:08 ` Ricardo Wurmus
2016-04-26 17:50   ` Roel Janssen
2016-04-26 17:51     ` Roel Janssen
2017-01-16 21:54       ` Ricardo Wurmus
2017-01-17 21:57         ` Roel Janssen
2017-01-18  8:24           ` Ricardo Wurmus
2016-04-20 13:18 ` 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).