all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* [bug#30658] [PATCH 0/4] Add FastQC
@ 2018-02-28 22:14 Ricardo Wurmus
  2018-02-28 22:38 ` [bug#30658] [PATCH 1/4] gnu: Add java-cisd-base Ricardo Wurmus
  0 siblings, 1 reply; 5+ messages in thread
From: Ricardo Wurmus @ 2018-02-28 22:14 UTC (permalink / raw)
  To: 30658; +Cc: Ricardo Wurmus

Hi Guix,

this patch adds fastqc, a very popular bioinformatics tool.

This has been in my staging repo for a very long time because it is written in
Java and bundled pre-built third-party jars.  I finally managed to build the
last few dependencies from source.  These java-cisd-* packages were really not
easy to build and you can tell by how complicated they are.

Both java-cisd-base and java-cisd-jhdf5 include native libraries, which I'm
building from the included C sources.  The packages include tests, but unlike
other Java packages these tests are in the form of an application that needs
to be executed.  Hence the extra build phase after "check" to actually run the
tests.

FastQC seems to work, but I haven't performed any comprehensive tests yet.

Ricardo Wurmus (4):
  gnu: Add java-cisd-base.
  gnu: Add java-cisd-args4j.
  gnu: Add java-cisd-jhdf5.
  gnu: Add fastqc.

 gnu/packages/bioinformatics.scm |  79 ++++++++
 gnu/packages/java.scm           | 439 ++++++++++++++++++++++++++++++++++++++++
 2 files changed, 518 insertions(+)

-- 
2.16.2

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

* [bug#30658] [PATCH 1/4] gnu: Add java-cisd-base.
  2018-02-28 22:14 [bug#30658] [PATCH 0/4] Add FastQC Ricardo Wurmus
@ 2018-02-28 22:38 ` Ricardo Wurmus
  2018-02-28 22:38   ` [bug#30658] [PATCH 2/4] gnu: Add java-cisd-args4j Ricardo Wurmus
                     ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Ricardo Wurmus @ 2018-02-28 22:38 UTC (permalink / raw)
  To: 30658; +Cc: Ricardo Wurmus

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

diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 0f8c04e8b..1e2b30d8d 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -2084,6 +2084,155 @@ Main-Class: org.eclipse.jdt.internal.compiler.batch.Main\n"
     (native-inputs
      `(("unzip" ,unzip)))))
 
+(define-public java-cisd-base
+  (let ((revision 38938)
+        (base-version "14.12.0"))
+    (package
+      (name "java-cisd-base")
+      (version (string-append base-version "-" (number->string revision)))
+      (source (origin
+                (method svn-fetch)
+                (uri (svn-reference
+                      (url (string-append "http://svnsis.ethz.ch/repos/cisd/"
+                                          "base/tags/release/"
+                                          (version-major+minor base-version)
+                                          ".x/" base-version "/base/"))
+                      (revision revision)))
+                (file-name (string-append "java-cisd-base-" version "-checkout"))
+                (sha256
+                 (base32
+                  "1i5adyf7nzclb0wydgwa1az04qliid8035vpahaandmkmigbnxiy"))
+                (modules '((guix build utils)))
+                (snippet
+                 '(begin
+                    ;; Delete included gradle jar
+                    (delete-file-recursively "gradle/wrapper")
+                    ;; Delete pre-built native libraries
+                    (delete-file-recursively "libs")
+                    #t))))
+      (build-system ant-build-system)
+      (arguments
+       `(#:make-flags '("-file" "build/build.xml")
+         #:test-target "jar-test"
+         #:jdk ,icedtea-8
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'unpack-build-resources
+             (lambda* (#:key inputs #:allow-other-keys)
+               (copy-recursively (assoc-ref inputs "build-resources")
+                                 "../build_resources")
+               #t))
+           (add-after 'unpack-build-resources 'fix-dependencies
+             (lambda* (#:key inputs #:allow-other-keys)
+               (substitute* "build/build.xml"
+                 (("\\$\\{lib\\}/testng/testng-jdk15.jar")
+                  (string-append (assoc-ref inputs "java-testng")
+                                 "/share/java/java-testng.jar"))
+                 (("\\$\\{lib\\}/commons-lang/commons-lang.jar")
+                  (string-append (assoc-ref inputs "java-commons-lang")
+                                 "/share/java/commons-lang-"
+                                 ,(package-version java-commons-lang) ".jar"))
+                 (("\\$\\{lib\\}/commons-io/commons-io.jar")
+                  (string-append (assoc-ref inputs "java-commons-io")
+                                 "/share/java/commons-io-"
+                                 ,(package-version java-commons-io)
+                                 "-SNAPSHOT.jar"))
+                 ;; Remove dependency on svn
+                 (("<build-info.*") "")
+                 (("\\$\\{revision.number\\}")
+                  ,(number->string revision))
+                 (("\\$\\{version.number\\}") ,base-version))
+               ;; Remove dependency on classycle
+               (substitute* "../build_resources/ant/build-common.xml"
+                 (("<taskdef name=\"dependency-checker.*") "")
+                 (("classname=\"classycle.*") "")
+                 (("classpath=\"\\$\\{lib\\}/classycle.*") ""))
+               #t))
+           ;; A few tests fail because of the lack of a proper /etc/groups and
+           ;; /etc/passwd file in the build container.
+           (add-after 'unpack 'disable-broken-tests
+             (lambda _
+               (substitute* "sourceTest/java/ch/systemsx/cisd/base/AllTests.java"
+                 (("Unix.isOperational\\(\\)") "false"))
+               #t))
+           ;; These decorators are almost useless and pull in an unpackaged
+           ;; dependency.
+           (add-after 'unpack 'remove-useless-decorators
+             (lambda _
+               (substitute* "source/java/ch/systemsx/cisd/base/unix/Unix.java"
+                 (("@Private") "")
+                 (("import ch.rinn.restrictions.Private;") ""))
+               (substitute* "sourceTest/java/ch/systemsx/cisd/base/unix/UnixTests.java"
+                 (("@Friend.*") "")
+                 (("import ch.rinn.restrictions.Friend;") ""))
+               #t))
+           (add-before 'configure 'build-native-code
+             (lambda* (#:key inputs #:allow-other-keys)
+               (let ((jdk (assoc-ref inputs "jdk"))
+                     (dir ,(match (%current-system)
+                             ("i686-linux"
+                              "i386-Linux")
+                             ((or "armhf-linux" "aarch64-linux")
+                              "arm-Linux")
+                             ((or "x86_64-linux")
+                              "amd64-Linux")
+                             (_ "unknown-Linux"))))
+                 (with-directory-excursion "source/c"
+                   (invoke "gcc" "-shared" "-O3" "-fPIC" "unix.c"
+                           (string-append "-I" jdk "/include")
+                           (string-append "-I" jdk "/include/linux")
+                           "-o" "libunix.so")
+                   (invoke "gcc" "-shared" "-O3" "-fPIC"
+                           "-DMACHINE_BYTE_ORDER=1"
+                           "copyCommon.c"
+                           "copyByteChar.c"
+                           "copyByteDouble.c"
+                           "copyByteFloat.c"
+                           "copyByteInt.c"
+                           "copyByteLong.c"
+                           "copyByteShort.c"
+                           (string-append "-I" jdk "/include")
+                           (string-append "-I" jdk "/include/linux")
+                           "-o" "libnativedata.so"))
+                 (install-file "source/c/libunix.so"
+                               (string-append "libs/native/unix/" dir))
+                 (install-file "source/c/libnativedata.so"
+                               (string-append "libs/native/nativedata/" dir))
+                 #t)))
+           ;; In the "check" phase we only build the test executable.
+           (add-after 'check 'run-tests
+             (lambda _
+               (invoke "java" "-jar" "targets/dist/sis-base-test.jar")
+               (delete-file "targets/dist/sis-base-test.jar")
+               #t))
+           (replace 'install (install-jars "targets/dist")))))
+      (native-inputs
+       `(("jdk" ,icedtea-8)
+         ("java-commons-lang" ,java-commons-lang)
+         ("java-commons-io" ,java-commons-io)
+         ("java-testng" ,java-testng)
+         ("build-resources"
+          ,(origin
+             (method svn-fetch)
+             (uri (svn-reference
+                   (url (string-append "http://svnsis.ethz.ch/repos/cisd/"
+                                       "base/tags/release/"
+                                       (version-major+minor base-version)
+                                       ".x/" base-version
+                                       "/build_resources/"))
+                   (revision revision)))
+             (sha256
+              (base32
+               "0b6335gkm4x895rac6kfg9d3rpq0sy19ph4zpg2gyw6asfsisjhk"))))))
+      (home-page "http://svnsis.ethz.ch")
+      (synopsis "Utility classes for libraries from ETH Zurich")
+      (description "This library supplies some utility classes needed for
+libraries from the SIS division at ETH Zurich like jHDF5.")
+      ;; The C sources are under a non-copyleft license, which looks like a
+      ;; variant of the BSD licenses.  The whole package is under the ASL2.0.
+      (license (list license:asl2.0
+                     (license:non-copyleft "file://source/c/COPYING"))))))
+
 (define-public java-classpathx-servletapi
   (package
     (name "java-classpathx-servletapi")
-- 
2.16.2

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

* [bug#30658] [PATCH 2/4] gnu: Add java-cisd-args4j.
  2018-02-28 22:38 ` [bug#30658] [PATCH 1/4] gnu: Add java-cisd-base Ricardo Wurmus
@ 2018-02-28 22:38   ` Ricardo Wurmus
  2018-02-28 22:38   ` [bug#30658] [PATCH 3/4] gnu: Add java-cisd-jhdf5 Ricardo Wurmus
  2018-02-28 22:38   ` [bug#30658] [PATCH 4/4] gnu: Add fastqc Ricardo Wurmus
  2 siblings, 0 replies; 5+ messages in thread
From: Ricardo Wurmus @ 2018-02-28 22:38 UTC (permalink / raw)
  To: 30658; +Cc: Ricardo Wurmus

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

diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 1e2b30d8d..7ad0c4126 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -2233,6 +2233,120 @@ libraries from the SIS division at ETH Zurich like jHDF5.")
       (license (list license:asl2.0
                      (license:non-copyleft "file://source/c/COPYING"))))))
 
+(define-public java-cisd-args4j
+  (let ((revision 39162)
+        (base-version "9.11.2"))
+    (package
+      (name "java-cisd-args4j")
+      (version (string-append base-version "-" (number->string revision)))
+      (source (origin
+                (method svn-fetch)
+                (uri (svn-reference
+                      (url (string-append "http://svnsis.ethz.ch/repos/cisd/"
+                                          "args4j/tags/release/"
+                                          (version-major+minor base-version)
+                                          ".x/" base-version "/args4j/"))
+                      (revision revision)))
+                (file-name (string-append "java-cisd-args4j-" version "-checkout"))
+                (sha256
+                 (base32
+                  "0hhqznjaivq7ips7mkwas78z42s6djsm20rrs7g1zd59rcsakxn2"))))
+      (build-system ant-build-system)
+      (arguments
+       `(#:make-flags '("-file" "build/build.xml")
+         #:tests? #f ; there are no tests
+         ;; There are weird build failures with JDK8, such as: "The type
+         ;; java.io.ObjectInputStream cannot be resolved. It is indirectly
+         ;; referenced from required .class files"
+         #:jdk ,icedtea-7
+         #: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 'unpack-build-resources
+             (lambda* (#:key inputs #:allow-other-keys)
+               (mkdir-p "../build_resources")
+               (invoke "tar" "xf" (assoc-ref inputs "build-resources")
+                       "-C" "../build_resources"
+                       "--strip-components=1")
+               (mkdir-p "../build_resources/lib")
+               #t))
+           (add-after 'unpack-build-resources 'fix-dependencies
+             (lambda* (#:key inputs #:allow-other-keys)
+               ;; FIXME: There should be a more convenient abstraction for
+               ;; editing XML files.
+               (with-directory-excursion "../build_resources/ant/"
+                 (chmod "build-common.xml" #o664)
+                 (call-with-output-file "build-common.xml.new"
+                   (lambda (port)
+                     (sxml->xml
+                      (pre-post-order
+                       (with-input-from-file "build-common.xml"
+                         (lambda _ (xml->sxml #:trim-whitespace? #t)))
+                       `(;; Remove dependency on classycle and custom ant tasks
+                         (taskdef   . ,(lambda (tag . kids)
+                                         (let ((name ((sxpath '(name *text*)) kids)))
+                                           (if (or (member "build-info" name)
+                                                   (member "dependency-checker" name)
+                                                   (member "build-java-subprojects" name)
+                                                   (member "project-classpath" name))
+                                               '() ; skip
+                                               `(,tag ,@kids)))))
+                         (typedef   . ,(lambda (tag . kids)
+                                         (let ((name ((sxpath '(name *text*)) kids)))
+                                           (if (member "recursive-jar" name)
+                                               '() ; skip
+                                               `(,tag ,@kids)))))
+                         (build-java-subprojects . ,(lambda _ '()))
+                         ;; Ignore everything else
+                         (*default* . ,(lambda (tag . kids) `(,tag ,@kids)))
+                         (*text*    . ,(lambda (_ txt) txt))))
+                      port)))
+                 (rename-file "build-common.xml.new" "build-common.xml"))
+               (substitute* "build/build.xml"
+                 (("\\$\\{lib\\}/cisd-base/cisd-base.jar")
+                  (string-append (assoc-ref inputs "java-cisd-base")
+                                 "/share/java/sis-base.jar"))
+                 ;; Remove dependency on svn
+                 (("<build-info.*") "")
+                 (("\\$\\{revision.number\\}")
+                  ,(number->string revision))
+                 (("\\$\\{version.number\\}") ,base-version)
+                 ;; Don't use custom ant tasks.
+                 (("recursive-jar") "jar")
+                 (("<project-classpath.*") ""))
+               #t))
+           (replace 'install (install-jars "targets/dist")))))
+      (inputs
+       `(("java-cisd-base" ,java-cisd-base)))
+      (native-inputs
+       `(("ecj" ,java-ecj-3.5)
+         ("build-resources"
+          ,(origin
+             (method svn-fetch)
+             (uri (svn-reference
+                   (url (string-append "http://svnsis.ethz.ch/repos/cisd/"
+                                       "args4j/tags/release/"
+                                       (version-major+minor base-version)
+                                       ".x/" base-version
+                                       "/build_resources/"))
+                   (revision revision)))
+             (sha256
+              (base32
+               "056cam4k8pll7ass31sy6gwn8g8719njc41yf4l02b0342nilkyf"))
+             (modules '((guix build utils)))
+             ;; Delete bundled pre-built jars.
+             (snippet
+              '(begin (delete-file-recursively "lib/") #t))))))
+      (home-page "http://svnsis.ethz.ch")
+      (synopsis "Command line parser library")
+      (description "This package provides a parser for command line arguments.")
+      (license license:asl2.0))))
+
 (define-public java-classpathx-servletapi
   (package
     (name "java-classpathx-servletapi")
-- 
2.16.2

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

* [bug#30658] [PATCH 3/4] gnu: Add java-cisd-jhdf5.
  2018-02-28 22:38 ` [bug#30658] [PATCH 1/4] gnu: Add java-cisd-base Ricardo Wurmus
  2018-02-28 22:38   ` [bug#30658] [PATCH 2/4] gnu: Add java-cisd-args4j Ricardo Wurmus
@ 2018-02-28 22:38   ` Ricardo Wurmus
  2018-02-28 22:38   ` [bug#30658] [PATCH 4/4] gnu: Add fastqc Ricardo Wurmus
  2 siblings, 0 replies; 5+ messages in thread
From: Ricardo Wurmus @ 2018-02-28 22:38 UTC (permalink / raw)
  To: 30658; +Cc: Ricardo Wurmus

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

diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 7ad0c4126..298874f75 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -59,6 +59,7 @@
   #:use-module (gnu packages image)
   #:use-module (gnu packages libffi)
   #:use-module (gnu packages linux) ;alsa
+  #:use-module (gnu packages maths)
   #:use-module (gnu packages web)
   #:use-module (gnu packages wget)
   #:use-module (gnu packages pkg-config)
@@ -2347,6 +2348,181 @@ libraries from the SIS division at ETH Zurich like jHDF5.")
       (description "This package provides a parser for command line arguments.")
       (license license:asl2.0))))
 
+(define-public java-cisd-jhdf5
+  (let ((revision 39162)
+        (base-version "14.12.6"))
+    (package
+      (name "java-cisd-jhdf5")
+      (version (string-append base-version "-" (number->string revision)))
+      (source (origin
+                (method svn-fetch)
+                (uri (svn-reference
+                      (url (string-append "http://svnsis.ethz.ch/repos/cisd/"
+                                          "jhdf5/tags/release/"
+                                          (version-major+minor base-version)
+                                          ".x/" base-version "/jhdf5/"))
+                      (revision revision)))
+                (file-name (string-append "java-cisd-jhdf5-" version "-checkout"))
+                (sha256
+                 (base32
+                  "13i17s2hn0q9drdqvp8csy7770p3hdbh9rp30ihln2ldkfawdmz0"))
+                (modules '((guix build utils)))
+                (snippet
+                 '(begin
+                    ;; Delete included gradle jar
+                    (delete-file-recursively "gradle/wrapper")
+                    ;; Delete pre-built native libraries
+                    (delete-file-recursively "libs")
+                    #t))))
+      (build-system ant-build-system)
+      (arguments
+       `(#:make-flags '("-file" "build/build.xml")
+         #:build-target "jar-all"
+         #:test-target "jar-test"
+         #:jdk ,icedtea-8
+         #:phases
+         (modify-phases %standard-phases
+           ;; Don't erase results from the build phase when building tests.
+           (add-after 'unpack 'separate-test-target-from-clean
+             (lambda _
+               (substitute* "build/build.xml"
+                 (("\"jar-test\" depends=\"clean, ")
+                  "\"jar-test\" depends=\""))
+               #t))
+           (add-after 'unpack 'unpack-build-resources
+             (lambda* (#:key inputs #:allow-other-keys)
+               (copy-recursively (assoc-ref inputs "build-resources")
+                                 "../build_resources")
+               (delete-file-recursively "../build_resources/lib/")
+               (mkdir-p "../build_resources/lib")
+               ;; Remove dependency on classycle
+               (substitute* "../build_resources/ant/build-common.xml"
+                 (("<taskdef name=\"dependency-checker.*") "")
+                 (("classname=\"classycle.*") "")
+                 (("classpath=\"\\$\\{lib\\}/classycle.*") ""))
+               ;; Remove dependency on svn
+               (substitute* "build/build.xml"
+                 (("<build-info.*") "")
+                 (("\\$\\{revision.number\\}")
+                  ,(number->string revision))
+                 (("\\$\\{version.number\\}") ,base-version))
+               #t))
+           (add-after 'unpack-build-resources 'fix-dependencies
+             (lambda* (#:key inputs #:allow-other-keys)
+               (substitute* "../build_resources/ant/build-common.xml"
+                 (("../libraries/testng/testng-jdk15.jar")
+                  (string-append (assoc-ref inputs "java-testng")
+                                 "/share/java/java-testng.jar")))
+               (substitute* "build/build.xml"
+                 (("\\$\\{lib\\}/sis-base/sis-base.jar")
+                  (string-append (assoc-ref inputs "java-cisd-base")
+                                 "/share/java/sis-base.jar"))
+                 (("\\$\\{lib\\}/cisd-args4j/cisd-args4j.jar")
+                  (string-append (assoc-ref inputs "java-cisd-args4j")
+                                 "/share/java/cisd-args4j.jar"))
+                 (("\\$\\{lib\\}/commons-lang/commons-lang.jar")
+                  (string-append (assoc-ref inputs "java-commons-lang")
+                                 "/share/java/commons-lang-"
+                                 ,(package-version java-commons-lang) ".jar"))
+                 (("\\$\\{lib\\}/commons-io/commons-io.jar")
+                  (string-append (assoc-ref inputs "java-commons-io")
+                                 "/share/java/commons-io-"
+                                 ,(package-version java-commons-io)
+                                 "-SNAPSHOT.jar"))
+                 (("\\$\\{lib\\}/testng/testng-jdk15.jar")
+                  (string-append (assoc-ref inputs "java-testng")
+                                 "/share/java/java-testng.jar"))
+                 (("\\$\\{lib\\}/junit4/junit.jar")
+                  (string-append (assoc-ref inputs "java-junit")
+                                 "/share/java/junit.jar"))
+                 (("\\$\\{lib\\}/jmock/hamcrest/hamcrest-core.jar")
+                  (string-append (assoc-ref inputs "java-hamcrest-core")
+                                 "/share/java/hamcrest-core.jar")))
+               ;; Remove dependency on ch.rinn.restrictions
+               (with-directory-excursion "source/java/ch/systemsx/cisd/hdf5/"
+                 (substitute* '("BitSetConversionUtils.java"
+                                "HDF5Utils.java")
+                   (("import ch.rinn.restrictions.Private;") "")
+                   (("@Private") "")))
+               (with-directory-excursion "sourceTest/java/ch/systemsx/cisd/hdf5/"
+                 (substitute* '("BitSetConversionTest.java"
+                                "h5ar/HDF5ArchiverTest.java")
+                   (("import ch.rinn.restrictions.Friend;") "")
+                   (("@Friend.*") ""))
+                 ;; Remove leftovers from removing @Friend
+                 (substitute* "h5ar/HDF5ArchiverTest.java"
+                   (("\\{ HDF5Archiver.class, IdCache.class, LinkRecord.class \\}\\)")
+                    "")))
+               #t))
+           (add-before 'configure 'build-native-library
+             (lambda* (#:key inputs #:allow-other-keys)
+               (let ((jdk  (assoc-ref inputs "jdk"))
+                     (hdf5 (assoc-ref inputs "hdf5"))
+                     (dir  ,(match (%current-system)
+                              ("i686-linux"
+                               "i386-Linux")
+                              ((or "armhf-linux" "aarch64-linux")
+                               "arm-Linux")
+                              ((or "x86_64-linux")
+                               "amd64-Linux")
+                              (_ "unknown-Linux"))))
+                 (with-directory-excursion "source/c"
+                   (apply invoke `("gcc" "-shared" "-O3"
+                                   "-fPIC"
+                                   "-Wl,--exclude-libs,ALL"
+                                   ,@(find-files "jhdf5" "\\.c$")
+                                   ,@(find-files "hdf-java" "\\.c$")
+                                   ,(string-append "-I" hdf5 "/include")
+                                   ,(string-append "-I" jdk "/include")
+                                   ,(string-append "-I" jdk "/include/linux")
+                                   ,(string-append hdf5 "/lib/libhdf5.a")
+                                   "-o" "libjhdf5.so" "-lz")))
+                 (install-file "source/c/libjhdf5.so"
+                               (string-append "libs/native/jhdf5/" dir))
+                 #t)))
+           ;; In the "check" phase we only build the test executable.
+           (add-after 'check 'run-tests
+             (lambda _
+               (invoke "java" "-jar" "targets/dist/sis-jhdf5-test.jar")
+               (delete-file "targets/dist/sis-jhdf5-test.jar")
+               #t))
+           (replace 'install
+             (install-jars "targets/dist")))))
+      (inputs
+       `(("java-cisd-base" ,java-cisd-base)
+         ("java-cisd-args4j" ,java-cisd-args4j)
+         ("java-commons-lang" ,java-commons-lang)
+         ("java-commons-io" ,java-commons-io)
+         ("hdf5" ,hdf5)
+         ("zlib" ,zlib)))
+      (native-inputs
+       `(("jdk" ,icedtea-8)
+         ("java-testng" ,java-testng)
+         ("java-junit" ,java-junit)
+         ("java-jmock" ,java-jmock)
+         ("java-hamcrest-core" ,java-hamcrest-core)
+         ("build-resources"
+          ,(origin
+             (method svn-fetch)
+             (uri (svn-reference
+                   (url (string-append "http://svnsis.ethz.ch/repos/cisd/"
+                                       "jhdf5/tags/release/"
+                                       (version-major+minor base-version)
+                                       ".x/" base-version
+                                       "/build_resources/"))
+                   (revision revision)))
+             (sha256
+              (base32
+               "0b6335gkm4x895rac6kfg9d3rpq0sy19ph4zpg2gyw6asfsisjhk"))))))
+      (home-page "https://wiki-bsse.ethz.ch/display/JHDF5/")
+      (synopsis "Java binding for HDF5")
+      (description "JHDF5 is a high-level API in Java for reading and writing
+HDF5 files, building on the libraries provided by the HDF Group.")
+      ;; The C sources are under a non-copyleft license, which looks like a
+      ;; variant of the BSD licenses.  The whole package is under the ASL2.0.
+      (license (list license:asl2.0
+                     (license:non-copyleft "file://source/c/COPYING"))))))
+
 (define-public java-classpathx-servletapi
   (package
     (name "java-classpathx-servletapi")
-- 
2.16.2

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

* [bug#30658] [PATCH 4/4] gnu: Add fastqc.
  2018-02-28 22:38 ` [bug#30658] [PATCH 1/4] gnu: Add java-cisd-base Ricardo Wurmus
  2018-02-28 22:38   ` [bug#30658] [PATCH 2/4] gnu: Add java-cisd-args4j Ricardo Wurmus
  2018-02-28 22:38   ` [bug#30658] [PATCH 3/4] gnu: Add java-cisd-jhdf5 Ricardo Wurmus
@ 2018-02-28 22:38   ` Ricardo Wurmus
  2 siblings, 0 replies; 5+ messages in thread
From: Ricardo Wurmus @ 2018-02-28 22:38 UTC (permalink / raw)
  To: 30658; +Cc: Ricardo Wurmus

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

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index c427a6d03..99fcf34f1 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -3211,6 +3211,85 @@ VCF.")
        ("jdk" ,icedtea-8 "jdk")
        ("jdk-src" ,(car (assoc-ref (package-native-inputs icedtea-8) "jdk-drop")))))))
 
+(define-public fastqc
+  (package
+    (name "fastqc")
+    (version "0.11.5")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "http://www.bioinformatics.babraham.ac.uk/"
+                           "projects/fastqc/fastqc_v"
+                           version "_source.zip"))
+       (sha256
+        (base32
+         "18rrlkhcrxvvvlapch4dpj6xc6mpayzys8qfppybi8jrpgx5cc5f"))))
+    (build-system ant-build-system)
+    (arguments
+     `(#:tests? #f                      ; there are no tests
+       #:build-target "build"
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-dependencies
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "build.xml"
+               (("jbzip2-0.9.jar")
+                (string-append (assoc-ref inputs "java-jbzip2")
+                               "/share/java/jbzip2.jar"))
+               (("sam-1.103.jar")
+                (string-append (assoc-ref inputs "java-picard-1.113")
+                               "/share/java/sam-1.112.jar"))
+               (("cisd-jhdf5.jar")
+                (string-append (assoc-ref inputs "java-cisd-jhdf5")
+                               "/share/java/sis-jhdf5.jar")))
+             #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/fastqc/"))
+                    (exe   (string-append share "/fastqc")))
+               (for-each mkdir-p (list bin share))
+               (copy-recursively "bin" share)
+               (substitute* exe
+                 (("my \\$java_bin = 'java';")
+                  (string-append "my $java_bin = '"
+                                 (assoc-ref inputs "java")
+                                 "/bin/java';")))
+               (chmod exe #o555)
+               (symlink exe (string-append bin "/fastqc"))
+               #t))))))
+    (inputs
+     `(("java" ,icedtea)
+       ("perl" ,perl)                   ; needed for the wrapper script
+       ("java-cisd-jhdf5" ,java-cisd-jhdf5)
+       ("java-picard-1.113" ,java-picard-1.113)
+       ("java-jbzip2" ,java-jbzip2)))
+    (native-inputs
+     `(("unzip" ,unzip)))
+    (home-page "http://www.bioinformatics.babraham.ac.uk/projects/fastqc/")
+    (synopsis "Quality control tool for high throughput sequence data")
+    (description
+     "FastQC aims to provide a simple way to do some quality control
+checks on raw sequence data coming from high throughput sequencing
+pipelines.  It provides a modular set of analyses which you can use to
+give a quick impression of whether your data has any problems of which
+you should be aware before doing any further analysis.
+
+The main functions of FastQC are:
+
+@itemize
+@item Import of data from BAM, SAM or FastQ files (any variant);
+@item Providing a quick overview to tell you in which areas there may
+  be problems;
+@item Summary graphs and tables to quickly assess your data;
+@item Export of results to an HTML based permanent report;
+@item Offline operation to allow automated generation of reports
+  without running the interactive application.
+@end itemize\n")
+    (license license:gpl3+)))
+
 (define-public htslib
   (package
     (name "htslib")
-- 
2.16.2

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

end of thread, other threads:[~2018-03-01 14:26 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-02-28 22:14 [bug#30658] [PATCH 0/4] Add FastQC Ricardo Wurmus
2018-02-28 22:38 ` [bug#30658] [PATCH 1/4] gnu: Add java-cisd-base Ricardo Wurmus
2018-02-28 22:38   ` [bug#30658] [PATCH 2/4] gnu: Add java-cisd-args4j Ricardo Wurmus
2018-02-28 22:38   ` [bug#30658] [PATCH 3/4] gnu: Add java-cisd-jhdf5 Ricardo Wurmus
2018-02-28 22:38   ` [bug#30658] [PATCH 4/4] gnu: Add fastqc Ricardo Wurmus

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.