unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#30666] [PATCH 00/17] Add dropseq-tools.
@ 2018-03-01 17:44 Ricardo Wurmus
  2018-03-01 18:41 ` [bug#30666] [PATCH 01/17] gnu: Add java-la4j Ricardo Wurmus
       [not found] ` <handler.30666.B.151992663330127.ack@debbugs.gnu.org>
  0 siblings, 2 replies; 19+ messages in thread
From: Ricardo Wurmus @ 2018-03-01 17:44 UTC (permalink / raw)
  To: 30666; +Cc: Ricardo Wurmus

Hi Guix,

this patch series adds the dropseq-tools for single cell sequencing.

Ricardo Wurmus (17):
  gnu: Add java-la4j.
  gnu: Add java-jlargearrays.
  gnu: Add java-jtransforms.
  gnu: Add java-jdistlib.
  gnu: Add java-biojava-core.
  gnu: Add java-openchart2.
  gnu: Add java-forester.
  gnu: Add java-forester-1.005.
  gnu: Add java-biojava-phylo.
  gnu: Add java-biojava-alignment.
  gnu: Add java-biojava-core-4.0.
  gnu: Add java-biojava-phylo-4.0.
  gnu: Add java-biojava-alignment-4.0.
  gnu: Add java-htsjdk-latest.
  gnu: Add java-htsjdk-2.10.1.
  gnu: Add java-picard-2.10.3.
  gnu: Add dropseq-tools.

 gnu/packages/algebra.scm        | 103 +++++-
 gnu/packages/bioinformatics.scm | 672 ++++++++++++++++++++++++++++++++++++++++
 gnu/packages/java.scm           |  41 +++
 gnu/packages/statistics.scm     |  39 +++
 4 files changed, 854 insertions(+), 1 deletion(-)

-- 
2.15.1

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

* [bug#30666] [PATCH 01/17] gnu: Add java-la4j.
  2018-03-01 17:44 [bug#30666] [PATCH 00/17] Add dropseq-tools Ricardo Wurmus
@ 2018-03-01 18:41 ` Ricardo Wurmus
  2018-03-01 18:41   ` [bug#30666] [PATCH 02/17] gnu: Add java-jlargearrays Ricardo Wurmus
                     ` (15 more replies)
       [not found] ` <handler.30666.B.151992663330127.ack@debbugs.gnu.org>
  1 sibling, 16 replies; 19+ messages in thread
From: Ricardo Wurmus @ 2018-03-01 18:41 UTC (permalink / raw)
  To: 30666; +Cc: Ricardo Wurmus

* gnu/packages/algebra.scm (java-la4j): New variable.
---
 gnu/packages/algebra.scm | 48 +++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 47 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm
index 2bc843103..a59346bd5 100644
--- a/gnu/packages/algebra.scm
+++ b/gnu/packages/algebra.scm
@@ -3,7 +3,7 @@
 ;;; Copyright © 2013, 2015, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2016, 2017, 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr>
 ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
-;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2016, 2018 Ricardo Wurmus <rekado@elephly.net>
 ;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
@@ -35,6 +35,7 @@
   #:use-module (gnu packages gl)
   #:use-module (gnu packages graphviz)
   #:use-module (gnu packages image)
+  #:use-module (gnu packages java)
   #:use-module (gnu packages maths)
   #:use-module (gnu packages mpi)
   #:use-module (gnu packages multiprecision)
@@ -46,9 +47,11 @@
   #:use-module (gnu packages texinfo)
   #:use-module (gnu packages xiph)
   #:use-module (gnu packages xorg)
+  #:use-module (guix build-system ant)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system cmake)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix utils))
@@ -612,6 +615,49 @@ cosine/ sine transforms or DCT/DST).")
     (synopsis "Computing the discrete Fourier transform (AVX2-optimized)")
     (supported-systems '("x86_64-linux"))))
 
+(define-public java-la4j
+  (package
+    (name "java-la4j")
+    (version "0.6.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/vkostyukov/la4j.git")
+                    (commit version)))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32
+                "1qir8dr978cfvz9k12m2kbdwpyf6cqdf1d0ilb7lnkhbgq5i53w3"))))
+    (build-system ant-build-system)
+    (arguments
+     `(#:jar-name "la4j.jar"
+       #:jdk ,icedtea-8
+       #:test-exclude (list "**/Abstract*.java"
+                            "**/MatrixTest.java"
+                            "**/DenseMatrixTest.java"
+                            "**/SparseMatrixTest.java"
+                            "**/VectorTest.java"
+                            "**/SparseVectorTest.java"
+                            "**/DenseVectorTest.java")))
+    (native-inputs
+     `(("java-junit" ,java-junit)
+       ("java-hamcrest-core" ,java-hamcrest-core)))
+    (home-page "http://la4j.org/")
+    (synopsis "Java library that provides Linear Algebra primitives and algorithms")
+    (description "The la4j library is a Java library that provides Linear
+Algebra primitives (matrices and vectors) and algorithms.  The key features of
+the la4j library are:
+
+@itemize
+@item No dependencies and tiny size
+@item Fluent object-oriented/functional API
+@item Sparse (CRS, CCS) and dense (1D/2D arrays) matrices
+@item Linear systems solving (Gaussian, Jacobi, Zeidel, Square Root, Sweep and other)
+@item Matrices decomposition (Eigenvalues/Eigenvectors, SVD, QR, LU, Cholesky and other)
+@item MatrixMarket/CSV IO formats support for matrices and vectors
+@end itemize\n")
+    (license license:asl2.0)))
+
 (define-public eigen
   (package
     (name "eigen")
-- 
2.15.1

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

* [bug#30666] [PATCH 02/17] gnu: Add java-jlargearrays.
  2018-03-01 18:41 ` [bug#30666] [PATCH 01/17] gnu: Add java-la4j Ricardo Wurmus
@ 2018-03-01 18:41   ` Ricardo Wurmus
  2018-03-01 18:41   ` [bug#30666] [PATCH 03/17] gnu: Add java-jtransforms Ricardo Wurmus
                     ` (14 subsequent siblings)
  15 siblings, 0 replies; 19+ messages in thread
From: Ricardo Wurmus @ 2018-03-01 18:41 UTC (permalink / raw)
  To: 30666; +Cc: Ricardo Wurmus

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

diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm
index a59346bd5..ebd75a7d3 100644
--- a/gnu/packages/algebra.scm
+++ b/gnu/packages/algebra.scm
@@ -658,6 +658,33 @@ the la4j library are:
 @end itemize\n")
     (license license:asl2.0)))
 
+(define-public java-jlargearrays
+  (package
+    (name "java-jlargearrays")
+    (version "1.6")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://search.maven.org/remotecontent?"
+                                  "filepath=pl/edu/icm/JLargeArrays/"
+                                  version "/JLargeArrays-" version
+                                  "-sources.jar"))
+              (file-name (string-append name "-" version ".jar"))
+              (sha256
+               (base32
+                "0v05iphpxbjnd7f4jf1rlqq3m8hslhcm0imdbsgxr20pi3xkaf2a"))))
+    (build-system ant-build-system)
+    (arguments
+     `(#:jar-name "jlargearrays.jar"
+       #:tests? #f ; tests are not included in the release archive
+       #:jdk ,icedtea-8))
+    (propagated-inputs
+     `(("java-commons-math3" ,java-commons-math3)))
+    (home-page "https://gitlab.com/ICM-VisLab/JLargeArrays")
+    (synopsis "Library of one-dimensional arrays that can store up to 263 elements")
+    (description "JLargeArrays is a Java library of one-dimensional arrays
+that can store up to 263 elements.")
+    (license license:bsd-2)))
+
 (define-public eigen
   (package
     (name "eigen")
-- 
2.15.1

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

* [bug#30666] [PATCH 03/17] gnu: Add java-jtransforms.
  2018-03-01 18:41 ` [bug#30666] [PATCH 01/17] gnu: Add java-la4j Ricardo Wurmus
  2018-03-01 18:41   ` [bug#30666] [PATCH 02/17] gnu: Add java-jlargearrays Ricardo Wurmus
@ 2018-03-01 18:41   ` Ricardo Wurmus
  2018-03-01 18:41   ` [bug#30666] [PATCH 04/17] gnu: Add java-jdistlib Ricardo Wurmus
                     ` (13 subsequent siblings)
  15 siblings, 0 replies; 19+ messages in thread
From: Ricardo Wurmus @ 2018-03-01 18:41 UTC (permalink / raw)
  To: 30666; +Cc: Ricardo Wurmus

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

diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm
index ebd75a7d3..2aa1777db 100644
--- a/gnu/packages/algebra.scm
+++ b/gnu/packages/algebra.scm
@@ -685,6 +685,34 @@ the la4j library are:
 that can store up to 263 elements.")
     (license license:bsd-2)))
 
+(define-public java-jtransforms
+  (package
+    (name "java-jtransforms")
+    (version "3.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://search.maven.org/remotecontent?"
+                                  "filepath=com/github/wendykierp/JTransforms/"
+                                  version "/JTransforms-" version "-sources.jar"))
+              (sha256
+               (base32
+                "1haw5m8shv5srgcpwkl853dz8bv6h90bzlhcps6mdpb4cixjirsg"))))
+    (build-system ant-build-system)
+    (arguments
+     `(#:jar-name "jtransforms.jar"
+       #:tests? #f ; tests are not included in the release archive
+       #:jdk ,icedtea-8))
+    (propagated-inputs
+     `(("java-commons-math3" ,java-commons-math3)
+       ("java-jlargearrays" ,java-jlargearrays)))
+    (home-page "https://github.com/wendykierp/JTransforms")
+    (synopsis "Multithreaded FFT library written in pure Java")
+    (description "JTransforms is a multithreaded FFT library written in pure
+Java.  Currently, four types of transforms are available: @dfn{Discrete
+Fourier Transform} (DFT), @dfn{Discrete Cosine Transform} (DCT), @dfn{Discrete
+Sine Transform} (DST) and @dfn{Discrete Hartley Transform} (DHT).")
+    (license license:bsd-2)))
+
 (define-public eigen
   (package
     (name "eigen")
-- 
2.15.1

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

* [bug#30666] [PATCH 04/17] gnu: Add java-jdistlib.
  2018-03-01 18:41 ` [bug#30666] [PATCH 01/17] gnu: Add java-la4j Ricardo Wurmus
  2018-03-01 18:41   ` [bug#30666] [PATCH 02/17] gnu: Add java-jlargearrays Ricardo Wurmus
  2018-03-01 18:41   ` [bug#30666] [PATCH 03/17] gnu: Add java-jtransforms Ricardo Wurmus
@ 2018-03-01 18:41   ` Ricardo Wurmus
  2018-03-01 18:41   ` [bug#30666] [PATCH 05/17] gnu: Add java-biojava-core Ricardo Wurmus
                     ` (12 subsequent siblings)
  15 siblings, 0 replies; 19+ messages in thread
From: Ricardo Wurmus @ 2018-03-01 18:41 UTC (permalink / raw)
  To: 30666; +Cc: Ricardo Wurmus

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

diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index c1012a635..d565f5cc2 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.scm
@@ -32,11 +32,13 @@
   #:use-module (guix hg-download)
   #:use-module (guix git-download)
   #:use-module (guix utils)
+  #:use-module (guix build-system ant)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system r)
   #:use-module (guix build-system python)
   #:use-module (guix build-system trivial)
   #:use-module (gnu packages)
+  #:use-module (gnu packages algebra)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages cran)
@@ -5539,3 +5541,40 @@ inferring an appropriate positioning method.")
       (description "Did you ever wish you could make scatter plots with cat
 shaped points?  Now you can!")
       (license license:asl2.0))))
+
+(define-public java-jdistlib
+  (package
+    (name "java-jdistlib")
+    (version "0.4.5")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://sourceforge/jdistlib/jdistlib-"
+                                  version "-src.jar"))
+              (sha256
+               (base32
+                "1pkj8aahw9ydr1isbaqrkd05nvq98ik5jwwhf3yf3rky3z869v11"))))
+    (build-system ant-build-system)
+    (arguments
+     `(#:jar-name "jdistlib.jar"
+       #:jdk ,icedtea-8
+       #:tests? #f ; no dedicated test directory
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-broken-encoding
+           (lambda _
+             (with-fluids ((%default-port-encoding "ISO-8859-1"))
+               (substitute* "src/jdistlib/Beta.java"
+                 (("Scheff.+-Tukey") "Scheffe-Tukey")))
+             #t)))))
+    (propagated-inputs
+     `(("java-jtransforms" ,java-jtransforms)))
+    (native-inputs
+     `(("java-junit" ,java-junit)))
+    (home-page "http://jdistlib.sourceforge.net/")
+    (synopsis "Java library of statistical distributions")
+    (description "JDistlib is the Java Statistical Distribution Library, a
+Java package that provides routines for various statistical distributions.")
+    ;; The files that were translated from R code are under GPLv2+; some files
+    ;; are under the GPLv3, which is a mistake.  The author confirmed in an
+    ;; email that this whole project should be under GPLv2+.
+    (license license:gpl2+)))
-- 
2.15.1

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

* [bug#30666] [PATCH 05/17] gnu: Add java-biojava-core.
  2018-03-01 18:41 ` [bug#30666] [PATCH 01/17] gnu: Add java-la4j Ricardo Wurmus
                     ` (2 preceding siblings ...)
  2018-03-01 18:41   ` [bug#30666] [PATCH 04/17] gnu: Add java-jdistlib Ricardo Wurmus
@ 2018-03-01 18:41   ` Ricardo Wurmus
  2018-03-01 18:41   ` [bug#30666] [PATCH 06/17] gnu: Add java-openchart2 Ricardo Wurmus
                     ` (11 subsequent siblings)
  15 siblings, 0 replies; 19+ messages in thread
From: Ricardo Wurmus @ 2018-03-01 18:41 UTC (permalink / raw)
  To: 30666; +Cc: Ricardo Wurmus

* gnu/packages/bioinformatics.scm (java-biojava-core): New variable.
---
 gnu/packages/bioinformatics.scm | 56 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 56 insertions(+)

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index c427a6d03..60dbc956a 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -11886,3 +11886,59 @@ variable number of row and column annotations.  Loom also supports sparse
 graphs.  This library makes it easy to work with @file{.loom} files for
 single-cell RNA-seq data.")
     (license license:bsd-3)))
+
+(define-public java-biojava-core
+  (package
+    (name "java-biojava-core")
+    (version "4.2.11")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/biojava/biojava")
+                    (commit (string-append "biojava-" version))))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32
+                "1bvryh2bpsvash8ln79cmc9sqm8qw72hz4xzwqxcrjm8ssxszhqk"))))
+    (build-system ant-build-system)
+    (arguments
+     `(#:jdk ,icedtea-8
+       #:jar-name "biojava-core.jar"
+       #:source-dir "biojava-core/src/main/java/"
+       #:test-dir "biojava-core/src/test"
+       ;; These tests seem to require internet access.
+       #:test-exclude (list "**/SearchIOTest.java"
+                            "**/BlastXMLParserTest.java"
+                            "**/GenbankCookbookTest.java"
+                            "**/GenbankProxySequenceReaderTest.java")
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'copy-resources
+           (lambda _
+             (copy-recursively "biojava-core/src/main/resources"
+                               "build/classes")
+             #t))
+         (add-before 'check 'copy-test-resources
+           (lambda _
+             (copy-recursively "biojava-core/src/test/resources"
+                               "build/test-classes")
+             #t)))))
+    (propagated-inputs
+     `(("java-log4j-api" ,java-log4j-api)
+       ("java-log4j-core" ,java-log4j-core)
+       ("java-slf4j-api" ,java-slf4j-api)
+       ("java-slf4j-simple" ,java-slf4j-simple)))
+    (native-inputs
+     `(("java-junit" ,java-junit)
+       ("java-hamcrest-core" ,java-hamcrest-core)))
+    (home-page "http://biojava.org")
+    (synopsis "Core libraries of Java framework for processing biological data")
+    (description "BioJava is a project dedicated to providing a Java framework
+for processing biological data.  It provides analytical and statistical
+routines, parsers for common file formats, reference implementations of
+popular algorithms, and allows the manipulation of sequences and 3D
+structures.  The goal of the biojava project is to facilitate rapid
+application development for bioinformatics.
+
+This package provides the core libraries.")
+    (license license:lgpl2.1+)))
-- 
2.15.1

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

* [bug#30666] [PATCH 06/17] gnu: Add java-openchart2.
  2018-03-01 18:41 ` [bug#30666] [PATCH 01/17] gnu: Add java-la4j Ricardo Wurmus
                     ` (3 preceding siblings ...)
  2018-03-01 18:41   ` [bug#30666] [PATCH 05/17] gnu: Add java-biojava-core Ricardo Wurmus
@ 2018-03-01 18:41   ` Ricardo Wurmus
  2018-03-01 18:41   ` [bug#30666] [PATCH 07/17] gnu: Add java-forester Ricardo Wurmus
                     ` (10 subsequent siblings)
  15 siblings, 0 replies; 19+ messages in thread
From: Ricardo Wurmus @ 2018-03-01 18:41 UTC (permalink / raw)
  To: 30666; +Cc: Ricardo Wurmus

* gnu/packages/java.scm (java-openchart2): New variable.
---
 gnu/packages/java.scm | 41 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)

diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 0f8c04e8b..f7f701188 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -8853,3 +8853,44 @@ against expected outcomes.")
        ("java-junit" ,java-junit)))
     (native-inputs
      `(("java-mockito-1" ,java-mockito-1)))))
+
+(define-public java-openchart2
+  (package
+    (name "java-openchart2")
+    (version "1.4.3")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://download.approximatrix.com/openchart2/"
+                                  "openchart2-" version ".source.zip"))
+              (sha256
+               (base32
+                "1xq96zm5r02n1blja0072jmmsifmxc40lbyfbnmcnr6mw42frh4g"))))
+    (build-system ant-build-system)
+    (arguments
+     `(#:test-target "test"
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-junit-errors
+           (lambda _
+             (with-directory-excursion "unittest/src/com/approximatrix/charting/"
+               (substitute* '("coordsystem/ticklocator/NumericXTickLocatorTest.java"
+                              "coordsystem/ticklocator/NumericYTickLocatorTest.java"
+                              "coordsystem/ticklocator/ObjectXTickLocatorTest.java"
+                              "model/DefaultChartDataModelConstraintsTest.java"
+                              "model/MultiScatterDataModelConstraintsTest.java"
+                              "model/threedimensional/DotPlotDataModelConstraintsTest.java")
+                 (("(assertEquals[^;]+);" before _)
+                  (string-append (string-drop-right before 2) ", 1E-6);"))))
+             #t))
+         (replace 'install (install-jars ".")))))
+    (native-inputs
+     `(("unzip" ,unzip)
+       ("java-junit" ,java-junit)
+       ("java-hamcrest-core" ,java-hamcrest-core)))
+    (home-page "http://approximatrix.com/products/openchart2/")
+    (synopsis "Simple plotting for Java")
+    (description "Openchart2 provides a simple, yet powerful, interface for
+Java programmers to create two-dimensional charts and plots.  The library
+features an assortment of graph styles, including advanced scatter plots, bar
+graphs, and pie charts.")
+    (license license:lgpl2.1+)))
-- 
2.15.1

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

* [bug#30666] [PATCH 07/17] gnu: Add java-forester.
  2018-03-01 18:41 ` [bug#30666] [PATCH 01/17] gnu: Add java-la4j Ricardo Wurmus
                     ` (4 preceding siblings ...)
  2018-03-01 18:41   ` [bug#30666] [PATCH 06/17] gnu: Add java-openchart2 Ricardo Wurmus
@ 2018-03-01 18:41   ` Ricardo Wurmus
  2018-03-01 18:41   ` [bug#30666] [PATCH 08/17] gnu: Add java-forester-1.005 Ricardo Wurmus
                     ` (9 subsequent siblings)
  15 siblings, 0 replies; 19+ messages in thread
From: Ricardo Wurmus @ 2018-03-01 18:41 UTC (permalink / raw)
  To: 30666; +Cc: Ricardo Wurmus

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

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 60dbc956a..a41efc054 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -11887,6 +11887,82 @@ graphs.  This library makes it easy to work with @file{.loom} files for
 single-cell RNA-seq data.")
     (license license:bsd-3)))
 
+;; We cannot use the latest commit because it requires Java 9.
+(define-public java-forester
+  (let ((commit "86b07efe302d5094b42deed9260f719a4c4ac2e6")
+        (revision "1"))
+    (package
+      (name "java-forester")
+      (version (string-append "0-" revision "." (string-take commit 7)))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/cmzmasek/forester.git")
+                      (commit commit)))
+                (file-name (string-append name "-" version "-checkout"))
+                (sha256
+                 (base32
+                  "0vxavc1yrf84yrnf20dq26hi0lglidk8d382xrxsy4qmlbjd276z"))
+                (modules '((guix build utils)))
+                (snippet
+                 '(begin
+                    ;; Delete bundled jars and pre-built classes
+                    (delete-file-recursively "forester/java/resources")
+                    (delete-file-recursively "forester/java/classes")
+                    (for-each delete-file (find-files "forester/java/" "\\.jar$"))
+                    ;; Delete bundled applications
+                    (delete-file-recursively "forester_applications")
+                    #t))))
+      (build-system ant-build-system)
+      (arguments
+       `(#:tests? #f ; there are none
+         #:jdk ,icedtea-8
+         #:modules ((guix build ant-build-system)
+                    (guix build utils)
+                    (guix build java-utils)
+                    (sxml simple)
+                    (sxml transform))
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'chdir
+             (lambda _ (chdir "forester/java") #t))
+           (add-after 'chdir 'fix-dependencies
+             (lambda _
+               (chmod "build.xml" #o664)
+               (call-with-output-file "build.xml.new"
+                 (lambda (port)
+                   (sxml->xml
+                    (pre-post-order
+                     (with-input-from-file "build.xml"
+                       (lambda _ (xml->sxml #:trim-whitespace? #t)))
+                     `(;; Remove all unjar tags to avoid repacking classes.
+                       (unjar     . ,(lambda _ '()))
+                       (*default* . ,(lambda (tag . kids) `(,tag ,@kids)))
+                       (*text*    . ,(lambda (_ txt) txt))))
+                    port)))
+               (rename-file "build.xml.new" "build.xml")
+               #t))
+           ;; FIXME: itext is difficult to package as it depends on a few
+           ;; unpackaged libraries.
+           (add-after 'chdir 'remove-dependency-on-unpackaged-itext
+             (lambda _
+               (delete-file "src/org/forester/archaeopteryx/PdfExporter.java")
+               (substitute* "src/org/forester/archaeopteryx/MainFrame.java"
+                 (("pdf_written_to = PdfExporter.*")
+                  "throw new IOException(\"PDF export is not available.\");"))
+               #t))
+           ;; There is no install target
+           (replace 'install (install-jars ".")))))
+      (propagated-inputs
+       `(("java-commons-codec" ,java-commons-codec)
+         ("java-openchart2" ,java-openchart2)))
+      (home-page "https://sites.google.com/site/cmzmasek/home/software/forester")
+      (synopsis "Phylogenomics libraries for Java")
+      (description "Forester is a collection of Java libraries for
+phylogenomics and evolutionary biology research.  It includes support for
+reading, writing, and exporting phylogenetic trees.")
+      (license license:lgpl2.1+))))
+
 (define-public java-biojava-core
   (package
     (name "java-biojava-core")
-- 
2.15.1

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

* [bug#30666] [PATCH 08/17] gnu: Add java-forester-1.005.
  2018-03-01 18:41 ` [bug#30666] [PATCH 01/17] gnu: Add java-la4j Ricardo Wurmus
                     ` (5 preceding siblings ...)
  2018-03-01 18:41   ` [bug#30666] [PATCH 07/17] gnu: Add java-forester Ricardo Wurmus
@ 2018-03-01 18:41   ` Ricardo Wurmus
  2018-03-01 18:41   ` [bug#30666] [PATCH 09/17] gnu: Add java-biojava-phylo Ricardo Wurmus
                     ` (8 subsequent siblings)
  15 siblings, 0 replies; 19+ messages in thread
From: Ricardo Wurmus @ 2018-03-01 18:41 UTC (permalink / raw)
  To: 30666; +Cc: Ricardo Wurmus

* gnu/packages/bioinformatics.scm (java-forester-1.005): New variable.
---
 gnu/packages/bioinformatics.scm | 95 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 95 insertions(+)

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index a41efc054..12ee8061f 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -11963,6 +11963,101 @@ phylogenomics and evolutionary biology research.  It includes support for
 reading, writing, and exporting phylogenetic trees.")
       (license license:lgpl2.1+))))
 
+(define-public java-forester-1.005
+  (package
+    (name "java-forester")
+    (version "1.005")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://search.maven.org/remotecontent?"
+                                  "filepath=org/biojava/thirdparty/forester/"
+                                  version "/forester-" version "-sources.jar"))
+              (file-name (string-append name "-" version ".jar"))
+              (sha256
+               (base32
+                "04r8qv4rk3p71z4ajrvp11py1z46qrx0047j3zzs79s6lnsm3lcv"))))
+    (build-system ant-build-system)
+    (arguments
+     `(#:tests? #f ; there are none
+       #:jdk ,icedtea-8
+       #:modules ((guix build ant-build-system)
+                  (guix build utils)
+                  (guix build java-utils)
+                  (sxml simple)
+                  (sxml transform))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-dependencies
+           (lambda* (#:key inputs #:allow-other-keys)
+             (call-with-output-file "build.xml"
+               (lambda (port)
+                 (sxml->xml
+                  (pre-post-order
+                   (with-input-from-file "src/build.xml"
+                     (lambda _ (xml->sxml #:trim-whitespace? #t)))
+                   `(;; Remove all unjar tags to avoid repacking classes.
+                     (unjar     . ,(lambda _ '()))
+                     (*default* . ,(lambda (tag . kids) `(,tag ,@kids)))
+                     (*text*    . ,(lambda (_ txt) txt))))
+                  port)))
+             (copy-file (assoc-ref inputs "synth_look_and_feel_1.xml")
+                        "synth_look_and_feel_1.xml")
+             (copy-file (assoc-ref inputs "phyloxml.xsd")
+                        "phyloxml.xsd")
+             (substitute* "build.xml"
+               (("../resources/synth_laf/synth_look_and_feel_1.xml")
+                "synth_look_and_feel_1.xml")
+               (("../resources/phyloxml_schema/1.10/phyloxml.xsd")
+                "phyloxml.xsd"))
+             #t))
+         ;; FIXME: itext is difficult to package as it depends on a few
+         ;; unpackaged libraries.
+         (add-after 'unpack 'remove-dependency-on-unpackaged-itext
+           (lambda _
+             (delete-file "src/org/forester/archaeopteryx/PdfExporter.java")
+             (substitute* '("src/org/forester/archaeopteryx/MainFrame.java"
+                            "src/org/forester/archaeopteryx/MainFrameApplication.java")
+               (("pdf_written_to = PdfExporter.*")
+                "throw new IOException(\"PDF export is not available.\"); /*")
+               ((".getPrintSizeX\\(\\), getOptions\\(\\).getPrintSizeY\\(\\) \\);") "*/")
+               (("getCurrentTreePanel\\(\\).getHeight\\(\\) \\);") "*/"))
+             #t))
+         (add-after 'unpack 'delete-pre-built-classes
+           (lambda _ (delete-file-recursively "src/classes") #t))
+         ;; There is no install target
+         (replace 'install (install-jars ".")))))
+    (propagated-inputs
+     `(("java-commons-codec" ,java-commons-codec)
+       ("java-openchart2" ,java-openchart2)))
+    ;; The source archive does not contain the resources.
+    (native-inputs
+     `(("phyloxml.xsd"
+        ,(origin
+           (method url-fetch)
+           (uri (string-append "https://raw.githubusercontent.com/cmzmasek/forester/"
+                               "b61cc2dcede0bede317db362472333115756b8c6/"
+                               "forester/resources/phyloxml_schema/1.10/phyloxml.xsd"))
+           (file-name (string-append name "-phyloxml-" version ".xsd"))
+           (sha256
+            (base32
+             "1zxc4m8sn4n389nqdnpxa8d0k17qnr3pm2y5y6g6vh4k0zm52npv"))))
+       ("synth_look_and_feel_1.xml"
+        ,(origin
+           (method url-fetch)
+           (uri (string-append "https://raw.githubusercontent.com/cmzmasek/forester/"
+                               "29e04321615da6b35c1e15c60e52caf3f21d8e6a/"
+                               "forester/java/classes/resources/synth_look_and_feel_1.xml"))
+           (file-name (string-append name "-synth-look-and-feel-" version ".xml"))
+           (sha256
+            (base32
+             "1gv5602gv4k7y7713y75a4jvj7i9s7nildsbdl7n9q10sc2ikg8h"))))))
+    (home-page "https://sites.google.com/site/cmzmasek/home/software/forester")
+    (synopsis "Phylogenomics libraries for Java")
+    (description "Forester is a collection of Java libraries for
+phylogenomics and evolutionary biology research.  It includes support for
+reading, writing, and exporting phylogenetic trees.")
+    (license license:lgpl2.1+)))
+
 (define-public java-biojava-core
   (package
     (name "java-biojava-core")
-- 
2.15.1

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

* [bug#30666] [PATCH 09/17] gnu: Add java-biojava-phylo.
  2018-03-01 18:41 ` [bug#30666] [PATCH 01/17] gnu: Add java-la4j Ricardo Wurmus
                     ` (6 preceding siblings ...)
  2018-03-01 18:41   ` [bug#30666] [PATCH 08/17] gnu: Add java-forester-1.005 Ricardo Wurmus
@ 2018-03-01 18:41   ` Ricardo Wurmus
  2018-03-01 18:41   ` [bug#30666] [PATCH 10/17] gnu: Add java-biojava-alignment Ricardo Wurmus
                     ` (7 subsequent siblings)
  15 siblings, 0 replies; 19+ messages in thread
From: Ricardo Wurmus @ 2018-03-01 18:41 UTC (permalink / raw)
  To: 30666; +Cc: Ricardo Wurmus

* gnu/packages/bioinformatics.scm (java-biojava-phylo): New variable.
---
 gnu/packages/bioinformatics.scm | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 12ee8061f..c1a40303f 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -12113,3 +12113,39 @@ application development for bioinformatics.
 
 This package provides the core libraries.")
     (license license:lgpl2.1+)))
+
+(define-public java-biojava-phylo
+  (package (inherit java-biojava-core)
+    (name "java-biojava-phylo")
+    (build-system ant-build-system)
+    (arguments
+     `(#:jdk ,icedtea-8
+       #:jar-name "biojava-phylo.jar"
+       #:source-dir "biojava-phylo/src/main/java/"
+       #:test-dir "biojava-phylo/src/test"
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'copy-resources
+           (lambda _
+             (copy-recursively "biojava-phylo/src/main/resources"
+                               "build/classes")
+             #t))
+         (add-before 'check 'copy-test-resources
+           (lambda _
+             (copy-recursively "biojava-phylo/src/test/resources"
+                               "build/test-classes")
+             #t)))))
+    (propagated-inputs
+     `(("java-log4j-api" ,java-log4j-api)
+       ("java-log4j-core" ,java-log4j-core)
+       ("java-slf4j-api" ,java-slf4j-api)
+       ("java-slf4j-simple" ,java-slf4j-simple)
+       ("java-biojava-core" ,java-biojava-core)
+       ("java-forester" ,java-forester)))
+    (native-inputs
+     `(("java-junit" ,java-junit)
+       ("java-hamcrest-core" ,java-hamcrest-core)))
+    (home-page "http://biojava.org")
+    (synopsis "Biojava interface to the forester phylogenomics library")
+    (description "The phylo module provides a biojava interface layer to the
+forester phylogenomics library for constructing phylogenetic trees.")))
-- 
2.15.1

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

* [bug#30666] [PATCH 10/17] gnu: Add java-biojava-alignment.
  2018-03-01 18:41 ` [bug#30666] [PATCH 01/17] gnu: Add java-la4j Ricardo Wurmus
                     ` (7 preceding siblings ...)
  2018-03-01 18:41   ` [bug#30666] [PATCH 09/17] gnu: Add java-biojava-phylo Ricardo Wurmus
@ 2018-03-01 18:41   ` Ricardo Wurmus
  2018-03-01 18:41   ` [bug#30666] [PATCH 11/17] gnu: Add java-biojava-core-4.0 Ricardo Wurmus
                     ` (6 subsequent siblings)
  15 siblings, 0 replies; 19+ messages in thread
From: Ricardo Wurmus @ 2018-03-01 18:41 UTC (permalink / raw)
  To: 30666; +Cc: Ricardo Wurmus

* gnu/packages/bioinformatics.scm (java-biojava-alignment): New variable.
---
 gnu/packages/bioinformatics.scm | 44 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 44 insertions(+)

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index c1a40303f..ae426bfb8 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -12149,3 +12149,47 @@ This package provides the core libraries.")
     (synopsis "Biojava interface to the forester phylogenomics library")
     (description "The phylo module provides a biojava interface layer to the
 forester phylogenomics library for constructing phylogenetic trees.")))
+
+(define-public java-biojava-alignment
+  (package (inherit java-biojava-core)
+    (name "java-biojava-alignment")
+    (build-system ant-build-system)
+    (arguments
+     `(#:jdk ,icedtea-8
+       #:jar-name "biojava-alignment.jar"
+       #:source-dir "biojava-alignment/src/main/java/"
+       #:test-dir "biojava-alignment/src/test"
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'copy-resources
+           (lambda _
+             (copy-recursively "biojava-alignment/src/main/resources"
+                               "build/classes")
+             #t))
+         (add-before 'check 'copy-test-resources
+           (lambda _
+             (copy-recursively "biojava-alignment/src/test/resources"
+                               "build/test-classes")
+             #t)))))
+    (propagated-inputs
+     `(("java-log4j-api" ,java-log4j-api)
+       ("java-log4j-core" ,java-log4j-core)
+       ("java-slf4j-api" ,java-slf4j-api)
+       ("java-slf4j-simple" ,java-slf4j-simple)
+       ("java-biojava-core" ,java-biojava-core)
+       ("java-biojava-phylo" ,java-biojava-phylo)
+       ("java-forester" ,java-forester)))
+    (native-inputs
+     `(("java-junit" ,java-junit)
+       ("java-hamcrest-core" ,java-hamcrest-core)))
+    (home-page "http://biojava.org")
+    (synopsis "Biojava API for genetic sequence alignment")
+    (description "The alignment module of BioJava provides an API that
+contains
+
+@itemize
+@item implementations of dynamic programming algorithms for sequence
+  alignment;
+@item reading and writing of popular alignment file formats;
+@item a single-, or multi- threaded multiple sequence alignment algorithm.
+@end itemize\n")))
-- 
2.15.1

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

* [bug#30666] [PATCH 11/17] gnu: Add java-biojava-core-4.0.
  2018-03-01 18:41 ` [bug#30666] [PATCH 01/17] gnu: Add java-la4j Ricardo Wurmus
                     ` (8 preceding siblings ...)
  2018-03-01 18:41   ` [bug#30666] [PATCH 10/17] gnu: Add java-biojava-alignment Ricardo Wurmus
@ 2018-03-01 18:41   ` Ricardo Wurmus
  2018-03-01 18:41   ` [bug#30666] [PATCH 12/17] gnu: Add java-biojava-phylo-4.0 Ricardo Wurmus
                     ` (5 subsequent siblings)
  15 siblings, 0 replies; 19+ messages in thread
From: Ricardo Wurmus @ 2018-03-01 18:41 UTC (permalink / raw)
  To: 30666; +Cc: Ricardo Wurmus

* gnu/packages/bioinformatics.scm (java-biojava-core-4.0): New variable.
---
 gnu/packages/bioinformatics.scm | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index ae426bfb8..141756465 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -12193,3 +12193,17 @@ contains
 @item reading and writing of popular alignment file formats;
 @item a single-, or multi- threaded multiple sequence alignment algorithm.
 @end itemize\n")))
+
+(define-public java-biojava-core-4.0
+  (package (inherit java-biojava-core)
+    (name "java-biojava-core")
+    (version "4.0.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/biojava/biojava")
+                    (commit (string-append "biojava-" version))))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32
+                "13675f6y9aqi7bi2lk3s1z7a22ynccjiqwa8izh7p97xi9wsfmd8"))))))
-- 
2.15.1

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

* [bug#30666] [PATCH 12/17] gnu: Add java-biojava-phylo-4.0.
  2018-03-01 18:41 ` [bug#30666] [PATCH 01/17] gnu: Add java-la4j Ricardo Wurmus
                     ` (9 preceding siblings ...)
  2018-03-01 18:41   ` [bug#30666] [PATCH 11/17] gnu: Add java-biojava-core-4.0 Ricardo Wurmus
@ 2018-03-01 18:41   ` Ricardo Wurmus
  2018-03-01 18:41   ` [bug#30666] [PATCH 13/17] gnu: Add java-biojava-alignment-4.0 Ricardo Wurmus
                     ` (4 subsequent siblings)
  15 siblings, 0 replies; 19+ messages in thread
From: Ricardo Wurmus @ 2018-03-01 18:41 UTC (permalink / raw)
  To: 30666; +Cc: Ricardo Wurmus

* gnu/packages/bioinformatics.scm (java-biojava-phylo-4.0): New variable.
---
 gnu/packages/bioinformatics.scm | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 141756465..a01f2c6b8 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -12207,3 +12207,39 @@ contains
               (sha256
                (base32
                 "13675f6y9aqi7bi2lk3s1z7a22ynccjiqwa8izh7p97xi9wsfmd8"))))))
+
+(define-public java-biojava-phylo-4.0
+  (package (inherit java-biojava-core-4.0)
+    (name "java-biojava-phylo")
+    (build-system ant-build-system)
+    (arguments
+     `(#:jdk ,icedtea-8
+       #:jar-name "biojava-phylo.jar"
+       #:source-dir "biojava-phylo/src/main/java/"
+       #:test-dir "biojava-phylo/src/test"
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'copy-resources
+           (lambda _
+             (copy-recursively "biojava-phylo/src/main/resources"
+                               "build/classes")
+             #t))
+         (add-before 'check 'copy-test-resources
+           (lambda _
+             (copy-recursively "biojava-phylo/src/test/resources"
+                               "build/test-classes")
+             #t)))))
+    (propagated-inputs
+     `(("java-log4j-api" ,java-log4j-api)
+       ("java-log4j-core" ,java-log4j-core)
+       ("java-slf4j-api" ,java-slf4j-api)
+       ("java-slf4j-simple" ,java-slf4j-simple)
+       ("java-biojava-core" ,java-biojava-core-4.0)
+       ("java-forester" ,java-forester-1.005)))
+    (native-inputs
+     `(("java-junit" ,java-junit)
+       ("java-hamcrest-core" ,java-hamcrest-core)))
+    (home-page "http://biojava.org")
+    (synopsis "Biojava interface to the forester phylogenomics library")
+    (description "The phylo module provides a biojava interface layer to the
+forester phylogenomics library for constructing phylogenetic trees.")))
-- 
2.15.1

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

* [bug#30666] [PATCH 13/17] gnu: Add java-biojava-alignment-4.0.
  2018-03-01 18:41 ` [bug#30666] [PATCH 01/17] gnu: Add java-la4j Ricardo Wurmus
                     ` (10 preceding siblings ...)
  2018-03-01 18:41   ` [bug#30666] [PATCH 12/17] gnu: Add java-biojava-phylo-4.0 Ricardo Wurmus
@ 2018-03-01 18:41   ` Ricardo Wurmus
  2018-03-01 18:41   ` [bug#30666] [PATCH 14/17] gnu: Add java-htsjdk-latest Ricardo Wurmus
                     ` (3 subsequent siblings)
  15 siblings, 0 replies; 19+ messages in thread
From: Ricardo Wurmus @ 2018-03-01 18:41 UTC (permalink / raw)
  To: 30666; +Cc: Ricardo Wurmus

* gnu/packages/bioinformatics.scm (java-biojava-alignment-4.0): New variable.
---
 gnu/packages/bioinformatics.scm | 44 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 44 insertions(+)

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index a01f2c6b8..98c0aff3a 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -12243,3 +12243,47 @@ contains
     (synopsis "Biojava interface to the forester phylogenomics library")
     (description "The phylo module provides a biojava interface layer to the
 forester phylogenomics library for constructing phylogenetic trees.")))
+
+(define-public java-biojava-alignment-4.0
+  (package (inherit java-biojava-core-4.0)
+    (name "java-biojava-alignment")
+    (build-system ant-build-system)
+    (arguments
+     `(#:jdk ,icedtea-8
+       #:jar-name "biojava-alignment.jar"
+       #:source-dir "biojava-alignment/src/main/java/"
+       #:test-dir "biojava-alignment/src/test"
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'build 'copy-resources
+           (lambda _
+             (copy-recursively "biojava-alignment/src/main/resources"
+                               "build/classes")
+             #t))
+         (add-before 'check 'copy-test-resources
+           (lambda _
+             (copy-recursively "biojava-alignment/src/test/resources"
+                               "build/test-classes")
+             #t)))))
+    (propagated-inputs
+     `(("java-log4j-api" ,java-log4j-api)
+       ("java-log4j-core" ,java-log4j-core)
+       ("java-slf4j-api" ,java-slf4j-api)
+       ("java-slf4j-simple" ,java-slf4j-simple)
+       ("java-biojava-core" ,java-biojava-core-4.0)
+       ("java-biojava-phylo" ,java-biojava-phylo-4.0)
+       ("java-forester" ,java-forester-1.005)))
+    (native-inputs
+     `(("java-junit" ,java-junit)
+       ("java-hamcrest-core" ,java-hamcrest-core)))
+    (home-page "http://biojava.org")
+    (synopsis "Biojava API for genetic sequence alignment")
+    (description "The alignment module of BioJava provides an API that
+contains
+
+@itemize
+@item implementations of dynamic programming algorithms for sequence
+  alignment;
+@item reading and writing of popular alignment file formats;
+@item a single-, or multi- threaded multiple sequence alignment algorithm.
+@end itemize\n")))
-- 
2.15.1

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

* [bug#30666] [PATCH 14/17] gnu: Add java-htsjdk-latest.
  2018-03-01 18:41 ` [bug#30666] [PATCH 01/17] gnu: Add java-la4j Ricardo Wurmus
                     ` (11 preceding siblings ...)
  2018-03-01 18:41   ` [bug#30666] [PATCH 13/17] gnu: Add java-biojava-alignment-4.0 Ricardo Wurmus
@ 2018-03-01 18:41   ` Ricardo Wurmus
  2018-03-01 18:41   ` [bug#30666] [PATCH 15/17] gnu: Add java-htsjdk-2.10.1 Ricardo Wurmus
                     ` (2 subsequent siblings)
  15 siblings, 0 replies; 19+ messages in thread
From: Ricardo Wurmus @ 2018-03-01 18:41 UTC (permalink / raw)
  To: 30666; +Cc: Ricardo Wurmus

* gnu/packages/bioinformatics.scm (java-htsjdk-latest): New variable.
---
 gnu/packages/bioinformatics.scm | 43 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 43 insertions(+)

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 98c0aff3a..2402fa0e7 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -3019,6 +3019,49 @@ sequencing (HTS) data.  There are also an number of useful utilities for
 manipulating HTS data.")
     (license license:expat)))
 
+(define-public java-htsjdk-latest
+  (package
+    (name "java-htsjdk")
+    (version "2.14.3")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/samtools/htsjdk.git")
+                    (commit version)))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32
+                "1lmya1fdjy03mz6zmdmd86j9v9vfhqb3952mqq075navx1i6g4bc"))))
+    (build-system ant-build-system)
+    (arguments
+     `(#:tests? #f                      ; test require Scala
+       #:jdk ,icedtea-8
+       #:jar-name "htsjdk.jar"
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'remove-useless-build.xml
+           (lambda _ (delete-file "build.xml") #t))
+         ;; The tests require the scalatest package.
+         (add-after 'unpack 'remove-tests
+           (lambda _ (delete-file-recursively "src/test") #t)))))
+    (inputs
+     `(("java-ngs" ,java-ngs)
+       ("java-snappy-1" ,java-snappy-1)
+       ("java-commons-compress" ,java-commons-compress)
+       ("java-commons-logging-minimal" ,java-commons-logging-minimal)
+       ("java-commons-jexl-2" ,java-commons-jexl-2)
+       ("java-xz" ,java-xz)))
+    (native-inputs
+     `(("java-junit" ,java-junit)))
+    (home-page "http://samtools.github.io/htsjdk/")
+    (synopsis "Java API for high-throughput sequencing data (HTS) formats")
+    (description
+     "HTSJDK is an implementation of a unified Java library for accessing
+common file formats, such as SAM and VCF, used for high-throughput
+sequencing (HTS) data.  There are also an number of useful utilities for
+manipulating HTS data.")
+    (license license:expat)))
+
 ;; This version matches java-htsjdk 2.3.0.  Later versions also require a more
 ;; recent version of java-htsjdk, which depends on gradle.
 (define-public java-picard
-- 
2.15.1

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

* [bug#30666] [PATCH 15/17] gnu: Add java-htsjdk-2.10.1.
  2018-03-01 18:41 ` [bug#30666] [PATCH 01/17] gnu: Add java-la4j Ricardo Wurmus
                     ` (12 preceding siblings ...)
  2018-03-01 18:41   ` [bug#30666] [PATCH 14/17] gnu: Add java-htsjdk-latest Ricardo Wurmus
@ 2018-03-01 18:41   ` Ricardo Wurmus
  2018-03-01 18:41   ` [bug#30666] [PATCH 16/17] gnu: Add java-picard-2.10.3 Ricardo Wurmus
  2018-03-01 18:41   ` [bug#30666] [PATCH 17/17] gnu: Add dropseq-tools Ricardo Wurmus
  15 siblings, 0 replies; 19+ messages in thread
From: Ricardo Wurmus @ 2018-03-01 18:41 UTC (permalink / raw)
  To: 30666; +Cc: Ricardo Wurmus

* gnu/packages/bioinformatics.scm (java-htsjdk-2.10.1): 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 2402fa0e7..37dac291f 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -3062,6 +3062,33 @@ sequencing (HTS) data.  There are also an number of useful utilities for
 manipulating HTS data.")
     (license license:expat)))
 
+;; This is needed for picard 2.10.3
+(define-public java-htsjdk-2.10.1
+  (package (inherit java-htsjdk-latest)
+    (name "java-htsjdk")
+    (version "2.10.1")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/samtools/htsjdk.git")
+                    (commit version)))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32
+                "1kxh7slm2pm3x9p6jxa1wqsq9a31dhiiflhxnxqcisan4k3rwia2"))))
+    (build-system ant-build-system)
+    (arguments
+     `(#:tests? #f                      ; tests require Scala
+       #:jdk ,icedtea-8
+       #:jar-name "htsjdk.jar"
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'remove-useless-build.xml
+           (lambda _ (delete-file "build.xml") #t))
+         ;; The tests require the scalatest package.
+         (add-after 'unpack 'remove-tests
+           (lambda _ (delete-file-recursively "src/test") #t)))))))
+
 ;; This version matches java-htsjdk 2.3.0.  Later versions also require a more
 ;; recent version of java-htsjdk, which depends on gradle.
 (define-public java-picard
-- 
2.15.1

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

* [bug#30666] [PATCH 16/17] gnu: Add java-picard-2.10.3.
  2018-03-01 18:41 ` [bug#30666] [PATCH 01/17] gnu: Add java-la4j Ricardo Wurmus
                     ` (13 preceding siblings ...)
  2018-03-01 18:41   ` [bug#30666] [PATCH 15/17] gnu: Add java-htsjdk-2.10.1 Ricardo Wurmus
@ 2018-03-01 18:41   ` Ricardo Wurmus
  2018-03-01 18:41   ` [bug#30666] [PATCH 17/17] gnu: Add dropseq-tools Ricardo Wurmus
  15 siblings, 0 replies; 19+ messages in thread
From: Ricardo Wurmus @ 2018-03-01 18:41 UTC (permalink / raw)
  To: 30666; +Cc: Ricardo Wurmus

* gnu/packages/bioinformatics.scm (java-picard-2.10.3): New variable.
---
 gnu/packages/bioinformatics.scm | 84 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 84 insertions(+)

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 37dac291f..1dc922b67 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -3167,6 +3167,90 @@ commonly used for high-throughput sequencing data such as SAM, BAM, CRAM and
 VCF.")
     (license license:expat)))
 
+;; This is needed for dropseq-tools
+(define-public java-picard-2.10.3
+  (package
+    (name "java-picard")
+    (version "2.10.3")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/broadinstitute/picard.git")
+                    (commit version)))
+              (file-name (string-append "java-picard-" version "-checkout"))
+              (sha256
+               (base32
+                "1ajlx31l6i1k3y2rhnmgq07sz99g2czqfqgkr9mihmdjp3gwjhvi"))))
+    (build-system ant-build-system)
+    (arguments
+     `(#:jar-name "picard.jar"
+       ;; Tests require jacoco:coverage.
+       #:tests? #f
+       #:jdk ,icedtea-8
+       #:main-class "picard.cmdline.PicardCommandLine"
+       #:modules ((guix build ant-build-system)
+                  (guix build utils)
+                  (guix build java-utils)
+                  (sxml simple)
+                  (sxml transform)
+                  (sxml xpath))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'remove-useless-build.xml
+           (lambda _ (delete-file "build.xml") #t))
+         ;; This is necessary to ensure that htsjdk is found when using
+         ;; picard.jar as an executable.
+         (add-before 'build 'edit-classpath-in-manifest
+           (lambda* (#:key inputs #:allow-other-keys)
+             (chmod "build.xml" #o664)
+             (call-with-output-file "build.xml.new"
+               (lambda (port)
+                 (sxml->xml
+                  (pre-post-order
+                   (with-input-from-file "build.xml"
+                     (lambda _ (xml->sxml #:trim-whitespace? #t)))
+                   `((target    . ,(lambda (tag . kids)
+                                     (let ((name ((sxpath '(name *text*))
+                                                  (car kids)))
+                                           ;; FIXME: We're breaking the line
+                                           ;; early with a dummy path to
+                                           ;; ensure that the store reference
+                                           ;; isn't broken apart and can still
+                                           ;; be found by the reference
+                                           ;; scanner.
+                                           (msg (format #f
+                                                        "\
+Class-Path: /~a \
+ ~a/share/java/htsjdk.jar${line.separator}"
+                                                        ;; maximum line length is 70
+                                                        (string-tabulate (const #\b) 57)
+                                                        (assoc-ref inputs "java-htsjdk"))))
+                                       (if (member "manifest" name)
+                                           `(,tag ,@kids
+                                                  (echo
+                                                   (@ (message ,msg)
+                                                      (file "${manifest.file}")
+                                                      (append "true"))))
+                                           `(,tag ,@kids)))))
+                     (*default* . ,(lambda (tag . kids) `(,tag ,@kids)))
+                     (*text*    . ,(lambda (_ txt) txt))))
+                  port)))
+             (rename-file "build.xml.new" "build.xml")
+             #t)))))
+    (propagated-inputs
+     `(("java-htsjdk" ,java-htsjdk-2.10.1)))
+    (native-inputs
+     `(("java-testng" ,java-testng)
+       ("java-guava" ,java-guava)))
+    (home-page "http://broadinstitute.github.io/picard/")
+    (synopsis "Tools for manipulating high-throughput sequencing data and formats")
+    (description "Picard is a set of Java command line tools for manipulating
+high-throughput sequencing (HTS) data and formats.  Picard is implemented
+using the HTSJDK Java library to support accessing file formats that are
+commonly used for high-throughput sequencing data such as SAM, BAM, CRAM and
+VCF.")
+    (license license:expat)))
+
 ;; This is the last version of Picard to provide net.sf.samtools
 (define-public java-picard-1.113
   (package (inherit java-picard)
-- 
2.15.1

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

* [bug#30666] [PATCH 17/17] gnu: Add dropseq-tools.
  2018-03-01 18:41 ` [bug#30666] [PATCH 01/17] gnu: Add java-la4j Ricardo Wurmus
                     ` (14 preceding siblings ...)
  2018-03-01 18:41   ` [bug#30666] [PATCH 16/17] gnu: Add java-picard-2.10.3 Ricardo Wurmus
@ 2018-03-01 18:41   ` Ricardo Wurmus
  15 siblings, 0 replies; 19+ messages in thread
From: Ricardo Wurmus @ 2018-03-01 18:41 UTC (permalink / raw)
  To: 30666; +Cc: Ricardo Wurmus

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

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 1dc922b67..fac3aaeb7 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -12441,3 +12441,140 @@ contains
 @item reading and writing of popular alignment file formats;
 @item a single-, or multi- threaded multiple sequence alignment algorithm.
 @end itemize\n")))
+
+(define-public dropseq-tools
+  (package
+    (name "dropseq-tools")
+    (version "1.13")
+    (source
+     (origin
+       (method url-fetch)
+       (uri "http://mccarrolllab.com/download/1276/")
+       (file-name (string-append "dropseq-tools-" version ".zip"))
+       (sha256
+        (base32
+         "0yrffckxqk5l8b5xb6z4laq157zd9mdypr2p4b4vq2bhjzi1sj0s"))
+       ;; Delete bundled libraries
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           (for-each delete-file (find-files "jar/lib" "\\.jar$"))
+           (delete-file-recursively "3rdParty")))))
+    (build-system ant-build-system)
+    (arguments
+     `(#:tests? #f                      ; test data are not included
+       #:test-target "test"
+       #:build-target "all"
+       #:source-dir "public/src/"
+       #:jdk ,icedtea-8
+       #:make-flags
+       (list (string-append "-Dpicard.executable.dir="
+                            (assoc-ref %build-inputs "java-picard")
+                            "/share/java/"))
+       #:modules ((ice-9 match)
+                  (srfi srfi-1)
+                  (guix build utils)
+                  (guix build java-utils)
+                  (guix build ant-build-system))
+       #:phases
+       (modify-phases %standard-phases
+         ;; All dependencies must be linked to "lib", because that's where
+         ;; they will be searched for when the Class-Path property of the
+         ;; manifest is computed.
+         (add-after 'unpack 'record-references
+	   (lambda* (#:key inputs #:allow-other-keys)
+             (mkdir-p "jar/lib")
+             (let ((dirs (filter-map (match-lambda
+                                       ((name . dir)
+                                        (if (and (string-prefix? "java-" name)
+                                                 (not (string=? name "java-testng")))
+                                            dir #f)))
+                                     inputs)))
+               (for-each (lambda (jar)
+                           (symlink jar (string-append "jar/lib/" (basename jar))))
+                         (append-map (lambda (dir) (find-files dir "\\.jar$"))
+                                     dirs)))
+	     #t))
+         ;; There is no installation target
+         (replace 'install
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((out     (assoc-ref outputs "out"))
+                    (bin     (string-append out "/bin"))
+                    (share   (string-append out "/share/java/"))
+                    (lib     (string-append share "/lib/"))
+                    (scripts (list "BAMTagHistogram"
+                                   "BAMTagofTagCounts"
+                                   "BaseDistributionAtReadPosition"
+                                   "CollapseBarcodesInPlace"
+                                   "CollapseTagWithContext"
+                                   "ConvertToRefFlat"
+                                   "CreateIntervalsFiles"
+                                   "DetectBeadSynthesisErrors"
+                                   "DigitalExpression"
+                                   "Drop-seq_alignment.sh"
+                                   "FilterBAM"
+                                   "FilterBAMByTag"
+                                   "GatherGeneGCLength"
+                                   "GatherMolecularBarcodeDistributionByGene"
+                                   "GatherReadQualityMetrics"
+                                   "PolyATrimmer"
+                                   "ReduceGTF"
+                                   "SelectCellsByNumTranscripts"
+                                   "SingleCellRnaSeqMetricsCollector"
+                                   "TagBamWithReadSequenceExtended"
+                                   "TagReadWithGeneExon"
+                                   "TagReadWithInterval"
+                                   "TrimStartingSequence"
+                                   "ValidateReference")))
+               (for-each mkdir-p (list bin share lib))
+               (install-file "dist/dropseq.jar" share)
+               (for-each (lambda (script)
+                           (chmod script #o555)
+                           (install-file script bin))
+                         scripts)
+               (substitute* (map (lambda (script)
+                                   (string-append bin "/" script))
+                                 scripts)
+                 (("^java") (which "java"))
+                 (("jar_deploy_dir=.*")
+                  (string-append "jar_deploy_dir=" share "\n"))))
+             #t))
+         ;; FIXME: We do this after stripping jars because we don't want it to
+         ;; copy all these jars and strip them.  We only want to install
+         ;; links.  Arguably, this is a problem with the ant-build-system.
+         (add-after 'strip-jar-timestamps 'install-links
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out     (assoc-ref outputs "out"))
+                    (share   (string-append out "/share/java/"))
+                    (lib     (string-append share "/lib/")))
+               (for-each (lambda (jar)
+                           (symlink (readlink jar)
+                                    (string-append lib (basename jar))))
+                         (find-files "jar/lib" "\\.jar$")))
+             #t)))))
+    (inputs
+     `(("jdk" ,icedtea-8)
+       ("java-picard" ,java-picard-2.10.3)
+       ("java-log4j-1.2-api" ,java-log4j-1.2-api)
+       ("java-commons-math3" ,java-commons-math3)
+       ("java-commons-jexl2" ,java-commons-jexl-2)
+       ("java-commons-collections4" ,java-commons-collections4)
+       ("java-commons-lang2" ,java-commons-lang)
+       ("java-commons-io" ,java-commons-io)
+       ("java-snappy-1.0.3-rc3" ,java-snappy-1)
+       ("java-guava" ,java-guava)
+       ("java-la4j" ,java-la4j)
+       ("java-biojava-core" ,java-biojava-core-4.0)
+       ("java-biojava-alignment" ,java-biojava-alignment-4.0)
+       ("java-jdistlib" ,java-jdistlib)
+       ("java-simple-xml" ,java-simple-xml)
+       ("java-snakeyaml" ,java-snakeyaml)))
+    (native-inputs
+     `(("unzip" ,unzip)
+       ("java-testng" ,java-testng)))
+    (home-page "http://mccarrolllab.com/dropseq/")
+    (synopsis "Tools for Drop-seq analyses")
+    (description "Drop-seq is a technology to enable biologists to
+analyze RNA expression genome-wide in thousands of individual cells at
+once.  This package provides tools to perform Drop-seq analyses.")
+    (license license:expat)))
-- 
2.15.1

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

* bug#30666: [PATCH 00/17] Add dropseq-tools.
       [not found] ` <handler.30666.B.151992663330127.ack@debbugs.gnu.org>
@ 2018-03-03 20:29   ` Ricardo Wurmus
  0 siblings, 0 replies; 19+ messages in thread
From: Ricardo Wurmus @ 2018-03-03 20:29 UTC (permalink / raw)
  To: 30666-done

Merged with commit 1adeef319.

-- 
Ricardo

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

end of thread, other threads:[~2018-03-03 20:30 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-03-01 17:44 [bug#30666] [PATCH 00/17] Add dropseq-tools Ricardo Wurmus
2018-03-01 18:41 ` [bug#30666] [PATCH 01/17] gnu: Add java-la4j Ricardo Wurmus
2018-03-01 18:41   ` [bug#30666] [PATCH 02/17] gnu: Add java-jlargearrays Ricardo Wurmus
2018-03-01 18:41   ` [bug#30666] [PATCH 03/17] gnu: Add java-jtransforms Ricardo Wurmus
2018-03-01 18:41   ` [bug#30666] [PATCH 04/17] gnu: Add java-jdistlib Ricardo Wurmus
2018-03-01 18:41   ` [bug#30666] [PATCH 05/17] gnu: Add java-biojava-core Ricardo Wurmus
2018-03-01 18:41   ` [bug#30666] [PATCH 06/17] gnu: Add java-openchart2 Ricardo Wurmus
2018-03-01 18:41   ` [bug#30666] [PATCH 07/17] gnu: Add java-forester Ricardo Wurmus
2018-03-01 18:41   ` [bug#30666] [PATCH 08/17] gnu: Add java-forester-1.005 Ricardo Wurmus
2018-03-01 18:41   ` [bug#30666] [PATCH 09/17] gnu: Add java-biojava-phylo Ricardo Wurmus
2018-03-01 18:41   ` [bug#30666] [PATCH 10/17] gnu: Add java-biojava-alignment Ricardo Wurmus
2018-03-01 18:41   ` [bug#30666] [PATCH 11/17] gnu: Add java-biojava-core-4.0 Ricardo Wurmus
2018-03-01 18:41   ` [bug#30666] [PATCH 12/17] gnu: Add java-biojava-phylo-4.0 Ricardo Wurmus
2018-03-01 18:41   ` [bug#30666] [PATCH 13/17] gnu: Add java-biojava-alignment-4.0 Ricardo Wurmus
2018-03-01 18:41   ` [bug#30666] [PATCH 14/17] gnu: Add java-htsjdk-latest Ricardo Wurmus
2018-03-01 18:41   ` [bug#30666] [PATCH 15/17] gnu: Add java-htsjdk-2.10.1 Ricardo Wurmus
2018-03-01 18:41   ` [bug#30666] [PATCH 16/17] gnu: Add java-picard-2.10.3 Ricardo Wurmus
2018-03-01 18:41   ` [bug#30666] [PATCH 17/17] gnu: Add dropseq-tools Ricardo Wurmus
     [not found] ` <handler.30666.B.151992663330127.ack@debbugs.gnu.org>
2018-03-03 20:29   ` bug#30666: [PATCH 00/17] " 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).