From f4e38087ff0c0261196304179f7d537d4806f164 Mon Sep 17 00:00:00 2001 From: Roel Janssen Date: Fri, 11 Mar 2016 13:02:06 +0100 Subject: Added test suite to pindel package. --- gn/packages/bioinformatics.scm | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) (limited to 'gn') diff --git a/gn/packages/bioinformatics.scm b/gn/packages/bioinformatics.scm index 276471b..2c8feec 100644 --- a/gn/packages/bioinformatics.scm +++ b/gn/packages/bioinformatics.scm @@ -1140,15 +1140,19 @@ manipulations on VCF files.") ("python" ,python-2) ("perl" ,perl))) (arguments - `(#:tests? #f - #:phases + `(#:phases (modify-phases %standard-phases (delete 'configure) ; There is no configure phase. + ;; The build phase needs to run 'make' twice for the reasons described + ;; below. (replace 'build (lambda* (#:key inputs #:allow-other-keys) - ;; The first run creates a Makefile.local file. + ;; The first run creates a Makefile.local file. Make will report + ;; the failure to find Makefile.local, but we can ignore this error. (system* "make" (string-append "SAMTOOLS=" (assoc-ref inputs "samtools"))) - ;; The second run actually compiles the program. + ;; The second run actually compiles the program. Now Makefile.local + ;; is available, and we should treat an exiting make with an error as + ;; a true error. (zero? (system* "make")))) (replace 'install (lambda* (#:key outputs #:allow-other-keys) @@ -1156,7 +1160,17 @@ manipulations on VCF files.") (install-file "src/pindel" bin) (install-file "src/pindel2vcf" bin) (install-file "src/pindel2vcf4tcga" bin) - (install-file "src/sam2pindel" bin))))))) + (install-file "src/sam2pindel" bin)))) + ;; There are multiple test targets, so in order to run all + ;; tests, we must run the separate make targets. + (replace 'check + (lambda* (#:key inputs #:allow-other-keys) + (and + (zero? (system* "make" "acceptance-tests")) + (zero? (system* "make" "coverage-tests")) + (zero? (system* "make" "cppcheck")) + (zero? (system* "make" "functional-tests")) + (zero? (system* "make" "regression-tests")))))))) (home-page "https://github.com/genome/pindel") (synopsis "Structural variants detector for next-gen sequencing data") (description "Pindel can detect breakpoints of large deletions, medium sized -- cgit v1.2.3 From 904e605a2a881afe50ac5ae5950739d2fa0189c8 Mon Sep 17 00:00:00 2001 From: Roel Janssen Date: Tue, 15 Mar 2016 16:58:59 +0100 Subject: Added Java packages, working, WIP and ON HOLD. --- gn/packages/java.scm | 299 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 299 insertions(+) create mode 100644 gn/packages/java.scm (limited to 'gn') diff --git a/gn/packages/java.scm b/gn/packages/java.scm new file mode 100644 index 0000000..3fce390 --- /dev/null +++ b/gn/packages/java.scm @@ -0,0 +1,299 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2016 Roel Janssen +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu packages java) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (guix utils) + #:use-module (guix download) + #:use-module (guix git-download) + #:use-module (guix svn-download) + #:use-module (guix build-system gnu) + #:use-module (guix build-system ant) + #:use-module (gnu packages) + #:use-module (gnu packages autotools) + #:use-module (gnu packages bioinformatics) + #:use-module (gnu packages compression) + #:use-module (gnu packages gcc) + #:use-module (gnu packages java) + #:use-module (gnu packages perl) + #:use-module (gnu packages certs) + #:use-module (gnu packages zip)) + +;; ---------------------------------------------------------------------------- +;; WORKING PACKAGES +;; ---------------------------------------------------------------------------- + +(define-public xz-java + (package + (name "xz-java") + (version "1.5") + (source (origin + (method url-fetch) + (uri (string-append "http://tukaani.org/xz/" + name "-" version ".zip")) + (sha256 + (base32 "0x6vn9dp9kxk83x2fp3394n95dk8fx9yg8jns9371iqsn0vy8ih1")))) + (build-system ant-build-system) + (arguments + `(#:tests? #f ; There's no test target. + #:jdk ,icedtea-7 + #:phases + (modify-phases %standard-phases + (replace 'unpack + (lambda _ + (mkdir-p "source") + (chdir "source") + (zero? (system* "unzip" (assoc-ref %build-inputs "source"))))) + (replace 'install + (lambda _ + (let ((out (string-append (assoc-ref %outputs "out") + "/share/java/xz/"))) + (mkdir-p out) + (copy-file "build/jar/xz.jar" (string-append out "/xz-1.5.jar")))))))) + (native-inputs + `(("unzip" ,unzip))) + (home-page "http://tukaani.org/xz/java.html") + (synopsis "Implementation of XZ data compression in pure Java") + (description "This aims to be a complete implementation of XZ data +compression in pure Java. Single-threaded streamed compression and +decompression and random access decompression have been fully implemented.") + (license license:public-domain))) + +(define-public jakarta-oro + (package + (name "jakarta-oro") + (version "2.0.8") + (source (origin + (method url-fetch) + (uri (string-append "http://archive.apache.org/dist/jakarta/oro/" + name "-" version ".tar.gz")) + (sha256 + (base32 "0rpmnsskiwmsy8r0sckz5n5dbvh3vkxx8hpm177c754r8xy3qksc")))) + (build-system ant-build-system) + (arguments + `(#:tests? #f ; There is no 'check' target + #:phases + (modify-phases %standard-phases + (replace 'install + (lambda _ + (let ((out (string-append (assoc-ref %outputs "out") + "/share/java/oro/"))) + (mkdir-p out) + (copy-file "jakarta-oro-2.0.8.jar" (string-append out "/oro-2.0.8.jar")))))) + )) + (home-page "http://jakarta.apache.org/oro/") + (synopsis "Set of text-processing Java classes") + (description "The Jakarta-ORO Java classes are a set of text-processing +Java classes that provide Perl5 compatible regular expressions, AWK-like regular +expressions, glob expressions, and utility classes for performing substitutions, +splits, filtering filenames, etc.") + (license license:asl1.1))) + +;; ---------------------------------------------------------------------------- +;; IN PROGRESS +;; ---------------------------------------------------------------------------- + +(define-public jsch + (package + (name "jsch") + (version "0.1.53") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge.net/jsch/" name "/" + version "/" name "-" version ".zip")) + (sha256 + (base32 "1729j7khwj6yvkr26fjaf273i3krhz2n1m3mbv5ms4x00qrhrxdn")))) + (build-system ant-build-system) + (home-page "http://www.jcraft.com/jsch/") + (synopsis "JSch is a pure Java implementation of SSH2") + (description "JSch is a pure Java implementation of SSH2. JSch allows you +to connect to an sshd server and use port forwarding, X11 forwarding, file +transfer, etc., and you can integrate its functionality into your own Java +programs.") + (license license:bsd-3))) + +(define-public commons-vfs + (package + (name "commons-vfs") + (version "2.0") + (source (origin + (method url-fetch) + (uri (string-append + "http://mirrors.supportex.net/apache/commons/vfs/source/" + name "-" version "-src.tar.gz")) + (sha256 + (base32 "1gkfg9g14kjkh2kf041ssdz9xnw7hpfmdsyrs1bbhyzikwg4s3d9")))) + (build-system ant-build-system) + (home-page "https://commons.apache.org/proper/commons-vfs/") + (synopsis "Commons Virtual File System API for Java") + (description "Commons VFS provides a single API for accessing various +different file systems. It presents a uniform view of the files from various +different sources, such as the files on local disk, on an HTTP server, or +inside a Zip archive. ") + (license license:asl2.0))) + +(define-public ivy +;; Ivy tries to download the following packages: +;; - https://repo1.maven.org/maven2/org/apache/ant/ant/1.7.1/ant-1.7.1.jar => We have ant-1.9.6 +;; - https://repo1.maven.org/maven2/org/apache/ant/ant-nodeps/1.7.1/ant-nodeps-1.7.1.jar => Probably not needed +;; - https://repo1.maven.org/maven2/org/apache/ant/ant-trax/1.7.1/ant-trax-1.7.1.jar => Classes moved to ant.jar +;; - https://repo1.maven.org/maven2/commons-httpclient/commons-httpclient/3.0/commons-httpclient-3.0.jar +;; - https://repo1.maven.org/maven2/oro/oro/2.0.8/oro-2.0.8.jar => Packaged +;; - https://repo1.maven.org/maven2/commons-vfs/commons-vfs/1.0/commons-vfs-1.0.jar +;; - https://repo1.maven.org/maven2/com/jcraft/jsch/0.1.50/jsch-0.1.50.jar +;; - https://repo1.maven.org/maven2/com/jcraft/jsch.agentproxy/0.0.6/jsch.agentproxy-0.0.6.jar +;; - https://repo1.maven.org/maven2/com/jcraft/jsch.agentproxy.connector-factory/0.0.6/jsch.agentproxy.connector-factory-0.0.6.jar +;; - https://repo1.maven.org/maven2/com/jcraft/jsch.agentproxy.jsch/0.0.6/jsch.agentproxy.jsch-0.0.6.jar +;; - https://repo1.maven.org/maven2/org/bouncycastle/bcpg-jdk14/1.45/bcpg-jdk14-1.45.jar +;; - https://repo1.maven.org/maven2/org/bouncycastle/bcprov-jdk14/1.45/bcprov-jdk14-1.45.jar +;; - https://repo1.maven.org/maven2/junit/junit/3.8.2/junit-3.8.2.jar +;; - https://repo1.maven.org/maven2/commons-lang/commons-lang/2.6/commons-lang-2.6.jar +;; - https://repo1.maven.org/maven2/org/apache/ant/ant-testutil/1.7.0/ant-testutil-1.7.0.jar +;; - https://repo1.maven.org/maven2/ant/ant-launcher/1.6.2/ant-launcher-1.6.2.jar +;; - https://repo1.maven.org/maven2/ant-contrib/ant-contrib/1.0b3/ant-contrib-1.0b3.jar +;; - https://repo1.maven.org/maven2/xerces/xercesImpl/2.6.2/xercesImpl-2.6.2.jar +;; - https://repo1.maven.org/maven2/xerces/xmlParserAPIs/2.6.2/xmlParserAPIs-2.6.2.jar + (package + (name "ivy") + (version "2.4.0") + (source (origin + (method url-fetch) + (uri (string-append "http://ftp.nluug.nl/internet/apache/ant/" name "/" + version "/apache-" name "-" version "-src.tar.gz")) + (sha256 + (base32 "1xkfn57g2m7l6y0xdq75x5rnrgk52m9jx2xah70g3ggl8750hbr0")))) + (build-system ant-build-system) + (inputs + `(("nss-certs" ,nss-certs))) + (home-page "http://ant.apache.org/ivy/") + (synopsis "Dependency manager for Ant") + (description "Apache Ivy is a popular dependency manager focusing on +flexibility and simplicity.") + (license license:asl2.0))) + + +;; ---------------------------------------------------------------------------- +;; ON HOLD: WAITING FOR MAVEN PACKAGES +;; ---------------------------------------------------------------------------- + +;; TODO: Needs commons-compress +;; (define-public ant-compress +;; (package +;; (name "ant-compress") +;; (version "1.4") +;; (source (origin +;; (method url-fetch) +;; (uri "https://www.apache.org/dist/ant/antlibs/compress/source/apache-ant-compress-1.4-src.tar.gz")) +;; (sha256 +;; (base32 "17v5i11srmi12ckgrvhlwn0gvapgizs5672x252h143r0ya4c04d"))) +;; )) + +;; TODO: Needs Maven. +;; (define-public commons-compress +;; (package +;; (name "apache-commons-compress") +;; (version "1.10") +;; (source (origin +;; (method url-fetch) +;; (uri ("http://ftp.tudelft.nl/apache//commons/compress/source/commons-compress-1.10-src.tar.gz"))) +;; (sha256 +;; (base32 "06b40k9dmgqkga3qmfpgzq87jf3fkcxnwaiyczclh58yibg19604"))) +;; )) + +;; TODO: Needs Maven. +;; (define-public jcommander +;; (package +;; (name "jcommander") +;; (version "1.48") +;; (source (origin +;; (method url-fetch) +;; (uri (string-append "https://github.com/cbeust/jcommander/archive/" +;; name "-" version ".tar.gz")) +;; (sha256 +;; (base32 "1qn56hd6sxkfdv9j6pwf8c7ia00n39zry236a6achc87wq2kmfnw")))) +;; (build-system ant-build-system) +;; (home-page "http://jcommander.org/") +;; (synopsis "Java framework for parsing command line parameters") +;; (description "JCommander is a very small Java framework that makes it +;; trivial to parse command line parameters. ") +;; (license license:asl2.0))) + +;; TODO: Needs Maven. +;; (define-public maven-remote-resources-plugin +;; (package +;; (name "maven-remote-resources-plugin") +;; (version "1.5") +;; (source (origin +;; (method svn-fetch) +;; (uri (svn-reference +;; (url (string-append "http://svn.apache.org/viewvc/maven/plugins/tags/" +;; name "-" version)) +;; (revision 1513840))) +;; (file-name (string-append name "-" version "-checkout")) +;; (sha256 +;; (base32 "1g0iavyb34kvs3jfrx2hfnr8lr11m39sj852cy7528wva1glfl4i")))) +;; (build-system ant-build-system) +;; (home-page "https://maven.apache.org/plugins/maven-remote-resources-plugin/") +;; (synopsis "") +;; (description "") +;; (license license:asl2.0))) + +;; TODO: Needs Maven. +;; (define-public junit +;; (package +;; (name "junit") +;; (version "4.12") +;; (source (origin +;; (method url-fetch) +;; (uri (string-append "https://github.com/junit-team/" +;; name "/archive/r" version ".tar.gz")) +;; (sha256 +;; (base32 "1r6ww2y3jpbpqh03r0966xxiz2vs8n72g6n6l0sjs3aspy56v8b1")))) +;; (build-system ant-build-system) +;; (home-page "http://junit.org/") +;; (synopsis "Framework to write repeatable tests") +;; (description "JUnit is a simple framework to write repeatable tests. It is +;; an instance of the xUnit architecture for unit testing frameworks.") +;; (license license:asl2.0))) + +(define-public maven + (package + (name "maven") + (version "3.3.9") + (source (origin + (method url-fetch) + (uri (string-append "http://apache.proserve.nl/maven/maven-3/" + version "/source/apache-maven-" version "-src.tar.gz")) + (sha256 + (base32 "1g0iavyb34kvs3jfrx2hfnr8lr11m39sj852cy7528wva1glfl4i")))) + (build-system ant-build-system) + (arguments + `(#:make-flags "-Dmaven.home=build/" + #:phases + (modify-phases %standard-phases + (add-before 'build 'set-m2-variable + (lambda _ + (setenv "M2_HOME" (string-append (assoc-ref %outputs "out") "/maven-3.3.9"))))))) + (home-page "https://maven.apache.org/") + (synopsis "") + (description "Apache Maven is a software project management and +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))) -- cgit v1.2.3 From a30321a25267f80df6084104c8d562dc61046c1f Mon Sep 17 00:00:00 2001 From: Roel Janssen Date: Wed, 16 Mar 2016 11:14:47 +0100 Subject: Add contra. --- gn/packages/bioinformatics.scm | 51 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) (limited to 'gn') diff --git a/gn/packages/bioinformatics.scm b/gn/packages/bioinformatics.scm index d81a19a..a0a375b 100644 --- a/gn/packages/bioinformatics.scm +++ b/gn/packages/bioinformatics.scm @@ -62,6 +62,57 @@ #:use-module (gnu packages bootstrap) #:use-module (srfi srfi-1)) +(define-public contra + (package + (name "contra") + (version "2.0.6") + (source (origin + (method url-fetch) + (uri (string-append + "mirror://sourceforge/contra-cnv/CONTRA.v" version ".tar.gz")) + (sha256 + (base32 + "0agpcm2xh5f0i9n9sx1kvln6mzdksddmh11bvzj6bh76yw5pnw91")))) + (build-system gnu-build-system) + (propagated-inputs + `(("python" ,python-2) + ("r" ,r) + ("r-dnacopy" ,r-dnacopy) + ("bedtools" ,bedtools) + ("samtools" ,samtools))) + (arguments + `(#:tests? #f ; There are no tests. + #:phases + (modify-phases %standard-phases + (delete 'configure) + (delete 'build) ; We can use Guix's BEDtools instead. + (replace 'install + (lambda _ + (let* ((out (assoc-ref %outputs "out")) + (bin (string-append out "/bin")) + (doc (string-append out "/share/doc/contra"))) + (mkdir-p bin) + (mkdir-p doc) + (and + (zero? (system* "cp" "--recursive" "scripts" bin)) + (zero? (system* "cp" "contra.py" bin)) + (zero? (system* "cp" "baseline.py" bin)) + ;; There's only a pre-built PDF available. + (zero? (system* "cp" "CONTRA_User_Guide.2.0.pdf" doc))))))))) + (home-page "http://contra-cnv.sourceforge.net/") + (synopsis "Tool for copy number variation (CNV) detection for targeted +resequencing data") + (description "CONTRA is a tool for copy number variation (CNV) detection +for targeted resequencing data such as those from whole-exome capture data. +CONTRA calls copy number gains and losses for each target region with key +strategies including the use of base-level log-ratios to remove GC-content +bias, correction for an imbalanced library size effect on log-ratios, and the +estimation of log-ratio variations via binning and interpolation. It takes +standard alignment formats (BAM/SAM) and outputs in variant call format +(VCF 4.0) for easy integration with other next generation sequencing analysis +package.") + (license license:gpl3+))) + (define-public freec (package (name "control-freec") -- cgit v1.2.3 From e024f97ea8886191fa49d56782dc42954bdc9880 Mon Sep 17 00:00:00 2001 From: Roel Janssen Date: Wed, 16 Mar 2016 13:49:52 +0100 Subject: Add delly. --- gn/packages/bioinformatics.scm | 56 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) (limited to 'gn') diff --git a/gn/packages/bioinformatics.scm b/gn/packages/bioinformatics.scm index a0a375b..a4d14b0 100644 --- a/gn/packages/bioinformatics.scm +++ b/gn/packages/bioinformatics.scm @@ -113,6 +113,62 @@ standard alignment formats (BAM/SAM) and outputs in variant call format package.") (license license:gpl3+))) +(define boost-delly + (package (inherit boost) + (name "boost-delly") + (version "1.57.0") + (source (origin + (method url-fetch) + (uri (string-append + "mirror://sourceforge/boost/boost_" + (string-map (lambda (x) (if (eq? x #\.) #\_ x)) version) + ".tar.bz2")) + (sha256 + (base32 + "0rs94vdmg34bwwj23fllva6mhrml2i7mvmlb11zyrk1k5818q34i")))))) + +(define-public delly + (package + (name "delly") + (version "0.7.2") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/tobiasrausch/delly/archive/v" + version ".tar.gz")) + (sha256 + (base32 "173mmg43dbxqkyq0kiffz63xbmggr2kzd55mwxci9yfh5md1zprn")) + (patches (list (search-patch "delly-use-system-libraries.patch"))))) + (build-system gnu-build-system) + (native-inputs + `(("python" ,python-2))) + (inputs + `(("boost" ,boost-delly) ; Use version 1.57.0 instead. + ("htslib" ,htslib) + ("zlib" ,zlib) + ("bzip2" ,bzip2))) + (arguments + `(#:tests? #f ; There are no tests to run. + #:phases + (modify-phases %standard-phases + (delete 'configure) ; There is no configure phase. + (replace 'install + (lambda _ + (let ((bin (string-append (assoc-ref %outputs "out") "/bin"))) + (install-file "src/cov" bin) + (install-file "src/delly" bin) + (install-file "src/extract" bin) + (install-file "src/iover" bin) + (install-file "src/stats" bin))))))) + (home-page "https://github.com/tobiasrausch/delly") + (synopsis "Integrated structural variant prediction method") + (description "Delly is an integrated structural variant prediction method +that can discover and genotype deletions, tandem duplications, inversions and +translocations at single-nucleotide resolution in short-read massively parallel +sequencing data. It uses paired-ends and split-reads to sensitively and +accurately delineate genomic rearrangements throughout the genome. Structural +variants can be visualized using Delly-maze and Delly-suave.") + (license license:gpl3))) + (define-public freec (package (name "control-freec") -- cgit v1.2.3