about summary refs log tree commit diff
diff options
context:
space:
mode:
authorEfraim Flashner2021-07-11 16:50:29 +0300
committerEfraim Flashner2021-07-11 16:52:59 +0300
commit6b7394db635356894b563ed1300f9be5184a661b (patch)
treeba0b7b34ce5fab113b8d85f957a65f1424d81bd4
parentac3535858a2447a92b024835415060947be83252 (diff)
downloadguix-bioinformatics-6b7394db635356894b563ed1300f9be5184a661b.tar.gz
gn: Add rtg-tools
* gn/packages/java.scm (rtg-tools): New variable.
* gn/packages/bioinformatics (hap.py)[native-inputs]: Remove field.
[inputs]: Add rtg-tools.
[arguments]: Replace rtg-tools implementation.
-rw-r--r--gn/packages/bioinformatics.scm32
-rw-r--r--gn/packages/java.scm81
2 files changed, 86 insertions, 27 deletions
diff --git a/gn/packages/bioinformatics.scm b/gn/packages/bioinformatics.scm
index 9e63a26..bb11987 100644
--- a/gn/packages/bioinformatics.scm
+++ b/gn/packages/bioinformatics.scm
@@ -15,6 +15,7 @@
   #:use-module (guix build-system trivial)
   #:use-module (guix build-system waf)
   #:use-module (gnu packages)
+  #:use-module (gn packages java)
   #:use-module (gn packages python)
   #:use-module (gn packages twint)
   #:use-module (gnu packages algebra)
@@ -2060,20 +2061,12 @@ cases include:
               #t)))
         (add-after 'fix-build 'insert-rtg-tools
           (lambda* (#:key inputs #:allow-other-keys)
-            (let ((rtg-tools (assoc-ref inputs "rtg-tools")))
-              (mkdir "external/libexec")
-              (invoke "unzip" "-j" rtg-tools
-                      "rtg-tools-3.12.1/rtg"
-                      "rtg-tools-3.12.1/RTG.jar"
-                      "rtg-tools-3.12.1/README.txt"
-                      "rtg-tools-3.12.1/LICENSE.txt"
-                      "rtg-tools-3.12.1/third-party/gzipfix.jar"
-                      "-d" "external/libexec/rtg-tools-install")
-              (mkdir "external/libexec/rtg-tools-install/third-party")
-              (rename-file "external/libexec/rtg-tools-install/gzipfix.jar"
-                           "external/libexec/rtg-tools-install/third-party/gzipfix.jar")
+            (let ((rtg-tools (assoc-ref inputs "rtg-tools"))
+                  (dest      "external/libexec/rtg-tools-install"))
+              (mkdir-p dest)
+              (copy-recursively rtg-tools dest)
               (copy-file "external/rtg.cfg"
-                         "external/libexec/rtg-tools-install/rtg.cfg")
+                         (string-append dest "/rtg.cfg"))
               #t)))
         (replace 'configure
           (lambda* (#:key outputs (configure-flags '()) (out-of-source? #t)
@@ -2155,18 +2148,6 @@ cases include:
                                          ,(string-append samtools "/bin")))))
                 (find-files (string-append out "/bin") "\\.py$"))
               #t))))))
-   (native-inputs
-    `(("rtg-tools"
-       ;; When updating this package also update the insert-rtg-tools phase.
-       ;; This bundled software is bsd-2 licensed.
-       ,(origin
-          (method url-fetch)
-          (uri (string-append "https://github.com/RealTimeGenomics/rtg-tools"
-                              "/releases/download/3.12.1"
-                              "/rtg-tools-3.12.1-nojre.zip"))
-          (sha256
-           (base32 "1an4axkrj28br09xpj9g0a6k5hrx1cx4wcldrryvj6a0ljqqrz2y"))))
-      ("unzip" ,unzip)))
    (inputs
     `(("bcftools" ,bcftools)
       ("boost" ,boost-static)   ; has to be boost-static
@@ -2179,6 +2160,7 @@ cases include:
       ("python2-pandas" ,python2-pandas)
       ("python2-pysam" ,python2-pysam)
       ("python2-scipy" ,python2-scipy)
+      ("rtg-tools" ,rtg-tools)
       ("samtools" ,samtools)
       ("zlib" ,zlib)))
    (home-page "https://github.com/Illumina/hap.py")
diff --git a/gn/packages/java.scm b/gn/packages/java.scm
index 6d835b1..23b59be 100644
--- a/gn/packages/java.scm
+++ b/gn/packages/java.scm
@@ -28,12 +28,14 @@
   #:use-module (gnu packages)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages bioinformatics)
+  #:use-module (gnu packages certs)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages gcc)
+  #:use-module (gnu packages icu4c)
   #:use-module (gnu packages java)
+  #:use-module (gnu packages java-compression)
   #:use-module (gnu packages perl)
-  #:use-module (gnu packages certs)
-  )
+  #:use-module (srfi srfi-1))
 
 ;; ----------------------------------------------------------------------------
 ;; WORKING PACKAGES
@@ -297,3 +299,78 @@ comprehension tool. Based on the concept of a project object model (POM),
 Maven can manage a project's build, reporting and documentation from a central
 piece of information.")
     (license license:asl2.0)))
+
+;; TODO: Remove bundled jars from buildLib, lib, testLib and javascript
+(define-public rtg-tools
+  (package
+    (name "rtg-tools")
+    (version "3.11")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                     (url "https://github.com/RealTimeGenomics/rtg-tools")
+                     (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32 "13fjhhcjgnynxscaymkn3rpdciplbg2m2qmihc7fxsylgn4m6gxk"))))
+    (build-system ant-build-system)
+    (arguments
+     `(#:build-target "zip-nojre"
+       #:test-target "runalltests"
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'adjust-source
+           (lambda _
+             (substitute* "build.xml"
+               (("\"git\"") "\"echo\"")
+               (("\\$\\{vcs\\.cmd\\.out\\}") "${product.version}")
+               (("\\$\\{build\\.time\\}") "1970-01-01")
+               (("-\\$\\{rtg\\.vcs\\.commit\\.revision\\}") ""))
+             #t))
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out"))
+                   (pkg (string-append ,name "-" ,version)))
+               (install-file (string-append "dist/" pkg "-nojre.zip")
+                             out)
+               (with-directory-excursion out
+                 (invoke "unzip" (string-append pkg "-nojre.zip"))
+                 (copy-recursively (string-append pkg "/") ".")
+                 (delete-file-recursively pkg)
+                 (delete-file (string-append pkg "-nojre.zip")))
+               #t)))
+         (delete 'generate-jar-indices))))  ; manually installed
+    (inputs
+     `(("java-commons-collections" ,java-commons-collections)
+       ("java-commons-compress" ,java-commons-compress)
+       ("java-commons-lang" ,java-commons-lang)
+       ;("java-graal-sdk" ,java-graal-sdk)
+       ;("java-gzipfix" ,java-gzipfix)
+       ;("java-htsjdk" ,java-sam-rtg)
+       ("java-icu4j" ,java-icu4j)
+       ;("java-js" ,java-js)
+       ;("java-js-scriptengine" ,java-js-scriptengine)
+       ;("java-json-simple" ,java-json-simple)
+       ;("java-regex" ,java-regex)
+       ;("java-rplot" ,java-rplot)
+       ("java-snappy" ,java-snappy)
+       ;("java-truffle-api" ,java-truffle-api)
+       ;("java-velocity" ,java-velocity)
+       ;("java-velocity-tools-generic" ,java-velocity-tools-generic)
+       ))
+    (native-inputs
+     `(;("java-findbugs-annotations" ,java-findbugs-annotations)
+       ;("java-findbugs-jsr305" ,java-findbugs-jsr305)
+       ;("java-jumble-annotations" ,java-jumble-annotations)
+       ;; for tests
+       ("java-hamcrest-core" ,java-hamcrest-core)
+       ("java-junit" ,java-junit)
+       ;("java-spelling" ,java-spelling)
+       ("unzip" ,unzip)))
+    (home-page "https://github.com/RealTimeGenomics/rtg-tools/")
+    (synopsis "Utilities for accurate VCF comparison and manipulation")
+    (description "RTG Tools is a subset of RTG Core that includes several useful
+utilities for dealing with VCF files and sequence data.  Probably the most
+interesting is the @code{vcfeval} command which performs sophisticated
+comparison of VCF files.")
+    (license license:bsd-2)))