about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--delly-use-system-libraries.patch65
-rw-r--r--gn/packages/arrayfire.scm5
-rw-r--r--gn/packages/bioinformatics.scm888
-rw-r--r--gn/packages/genenetwork.scm73
-rw-r--r--gn/packages/java.scm299
-rw-r--r--gn/packages/llvm.scm4
-rw-r--r--gn/packages/pocl.scm4
-rw-r--r--gn/packages/python.scm10
8 files changed, 1314 insertions, 34 deletions
diff --git a/delly-use-system-libraries.patch b/delly-use-system-libraries.patch
new file mode 100644
index 0000000..3ce817f
--- /dev/null
+++ b/delly-use-system-libraries.patch
@@ -0,0 +1,65 @@
+This patch let's Delly use the system versions of htslib and boost.
+
+Patch by Roel Janssen <roel@gnu.org>
+--- a/Makefile	2016-03-16 13:08:49.936706607 +0100
++++ b/Makefile	2016-03-16 13:09:12.351706212 +0100
+@@ -9,8 +9,8 @@
+ 
+ # Flags
+ CXX=g++
+-CXXFLAGS += -isystem ${SEQTK_ROOT} -isystem ${BOOST_ROOT} -pedantic -W -Wall -Wno-unknown-pragmas
+-LDFLAGS += -L${SEQTK_ROOT} -L${BOOST_ROOT}/stage/lib -lboost_iostreams -lboost_filesystem -lboost_system -lboost_program_options -lboost_date_time 
++CXXFLAGS += -pedantic -W -Wall -Wno-unknown-pragmas
++LDFLAGS += -lboost_iostreams -lboost_filesystem -lboost_system -lboost_program_options -lboost_date_time 
+ 
+ # Additional flags for release/debug
+ ifeq (${PARALLEL}, 1)
+@@ -23,7 +23,7 @@
+ ifeq (${STATIC}, 1)
+ 	LDFLAGS += -static -static-libgcc -pthread -lhts -lz
+ else
+-	LDFLAGS += -lhts -lz -Wl,-rpath,${SEQTK_ROOT},-rpath,${BOOST_ROOT}/stage/lib
++	LDFLAGS += -lhts -lz
+ endif
+ ifeq (${DEBUG}, 1)
+ 	CXXFLAGS += -g -O0 -fno-inline -DDEBUG
+@@ -41,32 +41,24 @@
+ DELLYSOURCES = $(wildcard src/*.h) $(wildcard src/*.cpp)
+ 
+ # Targets
+-TARGETS = .htslib .boost src/delly src/extract src/cov src/iover src/stats
++TARGETS = src/delly src/extract src/cov src/iover src/stats
+ 
+ all:   	$(TARGETS)
+ 
+-.htslib: $(HTSLIBSOURCES)
+-	cd src/htslib && make && make lib-static && cd ../../ && touch .htslib
+-
+-.boost: $(BOOSTSOURCES)
+-	cd src/modular-boost && ./bootstrap.sh --prefix=${PWD}/src/modular-boost --without-icu --with-libraries=iostreams,filesystem,system,program_options,date_time && ./b2 && ./b2 headers && cd ../../ && touch .boost
+-
+-src/delly: .htslib .boost $(DELLYSOURCES)
++src/delly: $(DELLYSOURCES)
+ 	$(CXX) $(CXXFLAGS) $@.cpp -o $@ $(LDFLAGS)
+ 
+-src/extract: .htslib .boost $(DELLYSOURCES)
++src/extract: $(DELLYSOURCES)
+ 	$(CXX) $(CXXFLAGS) $@.cpp -o $@ $(LDFLAGS)
+ 
+-src/cov: .htslib .boost $(DELLYSOURCES)
++src/cov: $(DELLYSOURCES)
+ 	$(CXX) $(CXXFLAGS) $@.cpp -o $@ $(LDFLAGS)
+ 
+-src/iover: .htslib .boost $(DELLYSOURCES)
++src/iover: $(DELLYSOURCES)
+ 	$(CXX) $(CXXFLAGS) $@.cpp -o $@ $(LDFLAGS)
+ 
+-src/stats: .htslib .boost $(DELLYSOURCES)
++src/stats: $(DELLYSOURCES)
+ 	$(CXX) $(CXXFLAGS) $@.cpp -o $@ $(LDFLAGS)
+ 
+ clean:
+-	cd src/htslib && make clean
+-	cd src/modular-boost && ./b2 --clean-all
+-	rm -f $(TARGETS) $(TARGETS:=.o) .htslib .boost
++	rm -f $(TARGETS) $(TARGETS:=.o)
diff --git a/gn/packages/arrayfire.scm b/gn/packages/arrayfire.scm
index c5326fa..446669c 100644
--- a/gn/packages/arrayfire.scm
+++ b/gn/packages/arrayfire.scm
@@ -17,12 +17,12 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gn packages arrayfire)
+  #:use-module (guix packages)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system cmake)
-  #:use-module (guix packages)
   #:use-module (gnu packages)
   #:use-module (guix utils)
   #:use-module (gnu packages algebra)
@@ -36,6 +36,9 @@
   #:use-module (gnu packages image)
   #:use-module (gnu packages video)
   #:use-module (gnu packages textutils)
+  ;; #:use-module (gnu packages fftw)
+  ;; #:use-module (gnu packages fftw-openmpi) - in algebra
+  ;; #:use-module (gnu packages fftwf)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages gnupg)
diff --git a/gn/packages/bioinformatics.scm b/gn/packages/bioinformatics.scm
index b503e22..a4d14b0 100644
--- a/gn/packages/bioinformatics.scm
+++ b/gn/packages/bioinformatics.scm
@@ -13,15 +13,25 @@
   ;; #:use-module (guix build-system ruby)
   #:use-module (guix build-system r)
   #:use-module (guix build-system trivial)
+  #:use-module (gn packages statistics)
   #:use-module (gnu packages)
+  #:use-module (gnu packages autotools)
   #:use-module (gnu packages algebra)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bioinformatics)
   #:use-module (gnu packages boost)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages databases)
+  #:use-module (gnu packages check)
+  #:use-module (gnu packages cmake)
+  #:use-module (gnu packages compression)
   #:use-module (gnu packages cpio)
+  #:use-module (gnu packages curl)
+  #:use-module (gnu packages doxygen)
+  #:use-module (gnu packages datastructures)
+  #:use-module (gnu packages check)
   #:use-module (gnu packages file)
+  #:use-module (gnu packages gawk)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages graphviz)
   #:use-module (gnu packages java)
@@ -29,7 +39,11 @@
   #:use-module (gnu packages ldc)
   #:use-module (gnu packages machine-learning)
   #:use-module (gnu packages maths)
+  #:use-module (gnu packages mpi)
   #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages node)
+  #:use-module (gnu packages parallel)
+  #:use-module (gnu packages pcre)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages popt)
@@ -39,15 +53,651 @@
   #:use-module (gnu packages statistics)
   #:use-module (gnu packages tbb)
   #:use-module (gnu packages textutils)
+  #:use-module (gnu packages time)
+  #:use-module (gnu packages tls)
   #:use-module (gnu packages vim)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages zip)
   #:use-module (gnu packages bootstrap)
-  #:use-module (gn packages python)
-  #:use-module (gn packages statistics)
   #: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 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")
+    (version "8.7")
+    (source (origin
+      (method url-fetch)
+      (uri "http://bioinfo-out.curie.fr/projects/freec/src/FREEC_Linux64.tar.gz")
+      (file-name (string-append name "-" version ".tar.gz"))
+      (sha256
+       (base32 "12sl7gxbklhvv0687qjhml1z4lwpcn159zcyxvawvclsrzqjmv0h"))))
+    (build-system gnu-build-system)
+    ;; The source code's filename indicates only a 64-bit Linux build.
+    ;; We need to investigate whether this is true.
+    (supported-systems '("x86_64-linux"))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         ;; There's no configure phase because there are no external
+         ;; dependencies.
+         (delete 'configure)
+         ;; There are no tests.
+         (delete 'check)
+         (replace
+          'unpack
+          (lambda* (#:key source #:allow-other-keys)
+            (and
+             (zero? (system* "mkdir" "source"))
+             (with-directory-excursion "source"
+               (zero? (system* "tar" "xvf" source))))))
+         (replace
+          'build
+          (lambda* (#:key inputs #:allow-other-keys)
+            (with-directory-excursion "source"
+              (zero? (system* "make")))))
+         (replace
+          'install
+          (lambda* (#:key outputs #:allow-other-keys)
+            (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
+              (install-file "source/freec" bin)))))))
+    (home-page "http://bioinfo-out.curie.fr/projects/freec/")
+    (synopsis "Tool for detection of copy-number changes and allelic imbalances
+(including LOH) using deep-sequencing data")
+    (description "Control-FREEC automatically computes, normalizes, segments
+copy number and beta allele frequency (BAF) profiles, then calls copy number
+alterations and LOH.  The control (matched normal) sample is optional for whole
+genome sequencing data but mandatory for whole exome or targeted sequencing
+data.  For whole genome sequencing data analysis, the program can also use
+mappability data (files created by GEM). ")
+    (license license:gpl2+)))
+
+(define-public tabixpp
+  (package
+   (name "tabixpp")
+   (version "1.0.0")
+   (source (origin
+     (method url-fetch)
+     (uri (string-append "https://github.com/ekg/tabixpp/archive/v"
+                         version ".tar.gz"))
+     (file-name (string-append name "-" version ".tar.gz"))
+     (sha256
+      (base32 "1s0lgks7qlvlhvcjhi2wm18nnza1bwcnic44ij7z8wfg88h4ivwn"))))
+   (build-system gnu-build-system)
+   (inputs
+    `(("htslib" ,htslib)
+      ("zlib" ,zlib)))
+   (arguments
+    `(#:tests? #f ; There are no tests to run.
+      #:phases
+      (modify-phases %standard-phases
+        (delete 'configure) ; There is no configure phase.
+        ;; The build phase needs overriding the location of htslib.
+        (replace 'build
+          (lambda* (#:key inputs #:allow-other-keys)
+            (let ((htslib-ref (assoc-ref inputs "htslib")))
+              (zero?
+               (system* "make"
+                 (string-append "HTS_LIB=" htslib-ref "/lib/libhts.a")
+                 "HTS_HEADERS=" ; No need to check for headers here.
+                 (string-append "LIBPATH=-L. -L" htslib-ref "/include"))))))
+        (replace 'install
+          (lambda* (#:key outputs #:allow-other-keys)
+            (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
+              (install-file "tabix++" bin)))))))
+   (home-page "https://github.com/ekg/tabixpp")
+   (synopsis "C++ wrapper around tabix project")
+   (description "This is a C++ wrapper around the Tabix project which abstracts
+some of the details of opening and jumping in tabix-indexed files.")
+   (license license:expat)))
+
+;; This version works with FreeBayes while the released version doesn't. The
+;; released creates a variable with the name "vcf" somewhere, which is also the
+;; name of a namespace in vcflib.
+(define-public tabixpp-freebayes
+  (let ((commit "bbc63a49acc52212199f92e9e3b8fba0a593e3f7"))
+    (package (inherit tabixpp)
+      (name "tabixpp-freebayes")
+      (version (string-append "0-1." (string-take commit 7)))
+      (source (origin
+        (method url-fetch)
+        (uri (string-append "https://github.com/ekg/tabixpp/archive/"
+                            commit ".tar.gz"))
+        (file-name (string-append name "-" version "-checkout.tar.gz"))
+        (sha256
+         (base32 "1s06wmpgj4my4pik5kp2lc42hzzazbp5ism2y4i2ajp2y1c68g77")))))))
+
+(define-public smithwaterman
+  ;; TODO: Upgrading smithwaterman breaks FreeBayes.
+  (let ((commit "203218b47d45ac56ef234716f1bd4c741b289be1"))
+    (package
+      (name "smithwaterman")
+      (version (string-append "0-1." (string-take commit 7)))
+      (source (origin
+        (method url-fetch)
+        (uri (string-append "https://github.com/ekg/smithwaterman/archive/"
+                            commit ".tar.gz"))
+        (file-name (string-append name "-" version "-checkout.tar.gz"))
+        (sha256
+         (base32 "1lkxy4xkjn96l70jdbsrlm687jhisgw4il0xr2dm33qwcclzzm3b"))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:tests? #f ; There are no tests to run.
+         #:phases
+         (modify-phases %standard-phases
+           (delete 'configure) ; There is no configure phase.
+           (replace 'install
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
+                 (install-file "smithwaterman" bin)))))))
+      (home-page "https://github.com/ekg/smithwaterman")
+      (synopsis "Implementation of the Smith-Waterman algorithm")
+      (description "Implementation of the Smith-Waterman algorithm.")
+      ;; The project contains a license file for the GPLv2.  The source files
+      ;; do not contain a license notice, so GPLv2-only is assumed here.
+      (license license:gpl2))))
+
+(define-public multichoose
+  (package
+    (name "multichoose")
+    (version "1.0.3")
+    (source (origin
+      (method url-fetch)
+      (uri (string-append "https://github.com/ekg/multichoose/archive/v"
+                          version ".tar.gz"))
+      (file-name (string-append name "-" version ".tar.gz"))
+      (sha256
+       (base32 "0xy86vvr3qrs4l81qis7ia1q2hnqv0xcb4a1n60smxbhqqis5w3l"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("python" ,python-2)
+       ("node" ,node)))
+    (arguments
+     `(#:tests? #f ; There are no tests to run.
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure) ; There is no configure phase.
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
+               ;; TODO: There are Python modules for these programs too.
+               (install-file "multichoose" bin)
+               (install-file "multipermute" bin)))))))
+    (home-page "https://github.com/ekg/multichoose")
+    (synopsis "Library for efficient loopless multiset combination generation
+algorithm")
+    (description "A library implements an efficient loopless multiset
+combination generation algorithm which is (approximately) described in
+\"Loopless algorithms for generating permutations, combinations, and other
+combinatorial configurations.\" G Ehrlich - Journal of the ACM (JACM),
+1973. (Algorithm 7.)")
+    (license license:expat)))
+
+(define-public fsom
+  (let ((commit "a6ef318fbd347c53189384aef7f670c0e6ce89a3"))
+    (package
+      (name "fsom")
+      (version (string-append "0-1." (string-take commit 7)))
+      (source (origin
+        (method url-fetch)
+        (uri (string-append "https://github.com/ekg/fsom/archive/"
+                            "a6ef318fbd347c53189384aef7f670c0e6ce89a3" ".tar.gz"))
+        (file-name (string-append name "-" version "-checkout.tar.gz"))
+        (sha256
+         (base32 "0q6b57ppxfvsm5cqmmbfmjpn5qvx2zi5pamvp3yh8gpmmz8cfbl3"))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:tests? #f ; There are no tests to run.
+         #:phases
+         (modify-phases %standard-phases
+           (delete 'configure) ; There is no configure phase.
+           (replace 'install
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
+                 (install-file "fsom" bin)))))))
+      (home-page "https://github.com/ekg/fsom")
+      (synopsis "Program for managing SOM (Self-Organizing Maps) neural networks")
+      (description "Program for managing SOM (Self-Organizing Maps) neural networks.")
+      (license license:gpl3))))
+
+(define-public filevercmp
+  (let ((commit "1a9b779b93d0b244040274794d402106907b71b7"))
+    (package
+      (name "filevercmp")
+      (version (string-append "0-1." (string-take commit 7)))
+      (source (origin
+        (method url-fetch)
+        (uri (string-append "https://github.com/ekg/filevercmp/archive/"
+                            commit ".tar.gz"))
+        (file-name "filevercmp-src.tar.gz")
+        (sha256
+         (base32 "0yp5jswf5j2pqc6517x277s4s6h1ss99v57kxw9gy0jkfl3yh450"))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:tests? #f ; There are no tests to run.
+         #:phases
+         (modify-phases %standard-phases
+           (delete 'configure) ; There is no configure phase.
+           (replace 'install
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
+                 (install-file "filevercmp" bin)))))))
+      (home-page "https://github.com/ekg/filevercmp")
+      (synopsis "Program to compare version strings")
+      (description "A program to compare version strings.  It intends to be a
+replacement for strverscmp.")
+      (license license:gpl3+))))
+
+(define-public fastahack
+  (let ((commit "c68cebb4f2e5d5d2b70cf08fbdf1944e9ab2c2dd"))
+    (package
+      (name "fastahack")
+      (version (string-append "0-1." (string-take commit 7)))
+      (source (origin
+        (method url-fetch)
+        (uri (string-append "https://github.com/ekg/fastahack/archive/"
+                            commit ".tar.gz"))
+        (file-name (string-append name "-" version "-checkout.tar.gz"))
+        (sha256
+         (base32 "0j25lcl3jk1kls66zzxjfyq5ir6sfcvqrdwfcva61y3ajc9ssay2"))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:tests? #f ; There are no tests to run.
+         #:phases
+         (modify-phases %standard-phases
+           (delete 'configure) ; There is no configure phase.
+           (replace 'install
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
+                 (install-file "fastahack" bin)))))))
+      (home-page "https://github.com/ekg/fastahack")
+      (synopsis "Program for indexing and sequence extraction from FASTA files")
+      (description "Fastahack is a small application for indexing and extracting
+sequences and subsequences from FASTA files.  The included Fasta.cpp library
+provides a FASTA reader and indexer that can be embeddedinto applications which
+would benefit from directly reading subsequences from FASTA files.  The library
+automatically handles index file generation and use.")
+      ;; There is no specific license for fastahack.
+      ;; A part of the program is licensed GPLv2.
+      (license (list license:non-copyleft license:gpl2)))))
+
+(define-public vcflib
+  (let ((commit "3ce827d8ebf89bb3bdc097ee0fe7f46f9f30d5fb"))
+    (package
+      (name "vcflib")
+      (version (string-append "1.0.2-1." (string-take commit 7)))
+      (source
+       (origin
+         (method url-fetch)
+         (uri (string-append "https://github.com/vcflib/vcflib/archive/"
+                "5ac091365fdc716cc47cc5410bb97ee5dc2a2c92" ".tar.gz"))
+         (file-name "vcflib-5ac0913.tar.gz")
+         (sha256
+          (base32 "0ywshwpif059z5h0g7zzrdfzzdj2gr8xvwlwcsdxrms3p9iy35h8"))))
+      (build-system gnu-build-system)
+      (native-inputs
+       `(("htslib" ,htslib)
+         ("zlib" ,zlib)
+         ("python" ,python-2)
+         ("perl" ,perl)
+         ("r" ,r)
+         ("node" ,node)
+         ("tabixpp-src" ,(package-source tabixpp-freebayes))
+         ("smithwaterman-src" ,(package-source smithwaterman))
+         ("multichoose-src" ,(package-source multichoose))
+         ("fsom-src" ,(package-source fsom))
+         ("filevercmp-src" ,(package-source filevercmp))
+         ("fastahack-src" ,(package-source fastahack))
+         ("intervaltree-src"
+          ,(origin
+             (method url-fetch)
+             (uri (string-append
+                   "https://github.com/ekg/intervaltree/archive/"
+                   "dbb4c513d1ad3baac516fc1484c995daf9b42838" ".tar.gz"))
+             (file-name "intervaltree-src.tar.gz")
+             (sha256
+              (base32 "19prwpn2wxsrijp5svfqvfcxl5nj7zdhm3jycd5kqhl9nifpmcks"))))))
+      (arguments
+       `(#:tests? #f
+         #:phases
+         (modify-phases %standard-phases
+           (delete 'configure)
+           (delete 'check)
+           (add-after 'unpack 'unpack-submodule-sources
+             (lambda* (#:key inputs #:allow-other-keys)
+               (let ((unpack (lambda (source target)
+                               (with-directory-excursion target
+                                 (zero? (system* "tar" "xvf"
+                                        (assoc-ref inputs source)
+                                        "--strip-components=1"))))))
+                 (and
+                  (unpack "intervaltree-src" "intervaltree")
+                  (unpack "fastahack-src" "fastahack")
+                  (unpack "filevercmp-src" "filevercmp")
+                  (unpack "fsom-src" "fsom")
+                  (unpack "multichoose-src" "multichoose")
+                  (unpack "smithwaterman-src" "smithwaterman")
+                  (unpack "tabixpp-src" "tabixpp")))))
+           (add-after 'unpack-submodule-sources 'fix-makefile
+             (lambda* (#:key inputs #:allow-other-keys)
+               (substitute* '("Makefile")
+                 (("^GIT_VERSION.*") "GIT_VERSION = v1.0.0"))))
+           (replace
+            'build
+            (lambda* (#:key inputs make-flags #:allow-other-keys)
+              (with-directory-excursion "tabixpp"
+                (zero? (system* "make")))
+              (zero? (system* "make" "CC=gcc"
+                (string-append "CFLAGS=\"" "-Itabixpp "
+                  "-I" (assoc-ref inputs "htslib") "/include " "\"") "all"))))
+           (replace
+            'install
+            (lambda* (#:key outputs #:allow-other-keys)
+              (let ((bin (string-append (assoc-ref outputs "out") "/bin"))
+                    ;;(include (string-append (assoc-ref outputs "out") "/include"))
+                    (lib (string-append (assoc-ref outputs "out") "/lib")))
+                (for-each (lambda (file)
+                           (install-file file bin))
+                         (find-files "bin" ".*"))
+                ;; The header files do not correspond to libvcflib.a, therefore
+                ;; I left them out.
+                ;;(for-each (lambda (file)
+                ;;           (install-file file include))
+                ;;         (find-files "src" "\\.h$"))
+                (install-file "libvcflib.a" lib)))))))
+      (home-page "https://github.com/vcflib/vcflib/")
+      (synopsis "Library for parsing and manipulating VCF files")
+      (description "Vcflib provides methods to manipulate and interpret
+sequence variation as it can be described by VCF. It is both an API for parsing
+and operating on records of genomic variation as it can be described by the VCF
+format, and a collection of command-line utilities for executing complex
+manipulations on VCF files.")
+      (license license:expat))))
+
+(define-public bash-tap
+  (package
+    (name "bash-tap")
+    (version "1.0.2")
+    (source (origin
+      (method url-fetch)
+      (uri (string-append "https://github.com/illusori/bash-tap/archive/"
+                          version ".tar.gz"))
+      (file-name (string-append name "-" version ".tar.gz"))
+      (sha256
+       (base32 "0qs1qi38bl3ns4mpagcawv618dsk2q1lgrbddgvs0wl3ia12cyz5"))))
+    (build-system trivial-build-system)
+    (native-inputs `(("source" ,source)
+                     ("tar" ,tar)
+                     ("gzip" ,gzip)))
+    (arguments
+     `(#:modules ((guix build utils))
+       #:builder (begin
+                   (use-modules (guix build utils))
+                   (let ((tar (string-append (assoc-ref %build-inputs "tar") "/bin/tar"))
+                         (path (string-append (assoc-ref %build-inputs "gzip") "/bin"))
+                         (bin (string-append %output "/bin"))
+                         (source (string-append (assoc-ref %build-inputs "source"))))
+                     (setenv "PATH" path)
+                     (mkdir-p bin)
+                     (with-directory-excursion bin
+                       (zero? (system* tar "xvf" source
+                                       "--strip-components=1"
+                                       "--no-anchored"
+                                       "bash-tap"
+                                       "bash-tap-bootstrap"
+                                       "bash-tap-mock")))))))
+    (home-page "http://www.illusori.co.uk/projects/bash-tap/")
+    (synopsis "Bash port of a Test::More/Test::Builder-style TAP-compliant
+test library")
+    (description "Bash TAP is a TAP-compliant Test::More-style testing library
+for Bash shell scripts and functions.  Along with the Test::More-style testing
+helpers it provides helper functions for mocking commands and functions and
+in-process output capturing.")
+    ;; The author didn't specify a license.
+    (license license:public-domain)))
+
+(define-public freebayes
+  (let ((commit "3ce827d8ebf89bb3bdc097ee0fe7f46f9f30d5fb")
+        (revision "1"))
+    (package
+      (name "freebayes")
+      (version (string-append "1.0.2-" revision "." (string-take commit 7)))
+      (source (origin
+        (method git-fetch)
+        (uri (git-reference
+          (url "https://github.com/ekg/freebayes.git")
+          (commit commit)))
+        (file-name (string-append name "-" version "-checkout"))
+        (sha256
+         (base32 "1sbzwmcbn78ybymjnhwk7qc5r912azy5vqz2y7y81616yc3ba2a2"))))
+      (build-system gnu-build-system)
+      (inputs
+       `(("zlib" ,zlib)
+         ("htslib" ,htslib)))
+      (native-inputs
+       `(("bc" ,bc) ; Needed for running tests.
+         ("samtools" ,samtools) ; Needed for running tests.
+         ("parallel" ,parallel) ; Needed for running tests.
+         ("procps" ,procps) ; Needed for running tests.
+         ("bamtools" ,bamtools)
+         ("cmake" ,cmake)
+         ("python" ,python-2)
+         ("node" ,node)
+         ("r" ,r)
+         ("perl" ,perl)
+         ("bamtools-src" ,(package-source bamtools))
+         ("vcflib-src" ,(package-source vcflib))
+         ;; These are submodules for the vcflib version used in freebayes
+         ("tabixpp-src" ,(package-source tabixpp-freebayes))
+         ("smithwaterman-src" ,(package-source smithwaterman))
+         ("multichoose-src" ,(package-source multichoose))
+         ("fsom-src" ,(package-source fsom))
+         ("filevercmp-src" ,(package-source filevercmp))
+         ("fastahack-src" ,(package-source fastahack))
+         ("intervaltree-src"
+          ,(origin
+             (method url-fetch)
+             (uri (string-append
+                   "https://github.com/ekg/intervaltree/archive/"
+                   "dbb4c513d1ad3baac516fc1484c995daf9b42838" ".tar.gz"))
+             (file-name "intervaltree-src.tar.gz")
+             (sha256
+              (base32 "19prwpn2wxsrijp5svfqvfcxl5nj7zdhm3jycd5kqhl9nifpmcks"))))
+         ;; These submodules are needed to run the tests.
+         ("bash-tap-src" ,(package-source bash-tap))
+          ;; ,(origin
+          ;;   (method url-fetch)
+          ;;   (uri (string-append "https://github.com/illusori/bash-tap/archive/"
+          ;;                       "c38fbfa401600cc81ccda66bfc0da3ea56288d03" ".tar.gz"))
+          ;;   (file-name "bash-tap-src.tar.gz")
+          ;;   (sha256
+          ;;    (base32 "07ijb1p0aa65ajpg9nkghc183iha6lwiydkckay8pghapa01j6nz"))))
+         ("test-simple-bash-src"
+          ,(origin
+            (method url-fetch)
+            (uri (string-append "https://github.com/ingydotnet/test-simple-bash/archive/"
+                                "124673ff204b01c8e96b7fc9f9b32ee35d898acc" ".tar.gz"))
+            (file-name "test-simple-bash-src.tar.gz")
+            (sha256
+             (base32 "016xf3wbgqbav9dncvfdx5k0f10z5xwq8jdszajzmcvnhz5wis14"))))))
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           (delete 'configure)
+           (add-after 'unpack 'unpack-submodule-sources
+             (lambda* (#:key inputs #:allow-other-keys)
+               (let ((unpack (lambda (source target)
+                               (with-directory-excursion target
+                                 (zero? (system* "tar" "xvf"
+                                                 (assoc-ref inputs source)
+                                                 "--strip-components=1"))))))
+                 (and
+                  (unpack "bamtools-src" "bamtools")
+                  (unpack "vcflib-src" "vcflib")
+                  ;;(unpack "intervaltree-src" "intervaltree")
+                  (unpack "fastahack-src" "vcflib/fastahack")
+                  (unpack "filevercmp-src" "vcflib/filevercmp")
+                  (unpack "fsom-src" "vcflib/fsom")
+                  (unpack "intervaltree-src" "vcflib/intervaltree")
+                  (unpack "multichoose-src" "vcflib/multichoose")
+                  (unpack "smithwaterman-src" "vcflib/smithwaterman")
+                  (unpack "tabixpp-src" "vcflib/tabixpp")
+                  (unpack "test-simple-bash-src" "test/test-simple-bash")
+                  (unpack "bash-tap-src" "test/bash-tap")))))
+           (add-after 'unpack-submodule-sources 'fix-makefile
+             (lambda* (#:key inputs #:allow-other-keys)
+               ;; We don't have the .git folder to get the version tag from.
+               ;; For this checkout of the code, it's v1.0.0.
+               (substitute* '("vcflib/Makefile")
+                 (("^GIT_VERSION.*") "GIT_VERSION = v1.0.0"))))
+           (replace 'build
+            (lambda* (#:key inputs make-flags #:allow-other-keys)
+              (and
+               ;; Compile Bamtools before compiling the main project.
+               (with-directory-excursion "bamtools"
+                 (system* "mkdir" "build")
+                 (with-directory-excursion "build"
+                   (and (zero? (system* "cmake" "../"))
+                        (zero? (system* "make")))))
+               ;; Compile vcflib before we compiling the main project.
+               (with-directory-excursion "vcflib"
+                 (with-directory-excursion "tabixpp"
+                   (let ((htslib-ref (assoc-ref inputs "htslib")))
+                     (zero?
+                      (system* "make" "HTS_HEADERS="
+                               (string-append "HTS_LIB=" htslib-ref "/lib/libhts.a")
+                               (string-append "LIBPATH=-L. -L" htslib-ref "/include")))))
+                 (zero? (system* "make" "CC=gcc"
+                   (string-append "CFLAGS=\"" "-Itabixpp "
+                     "-I" (assoc-ref inputs "htslib") "/include " "\"") "all")))
+               (with-directory-excursion "src"
+                 (zero? (system* "make"))))))
+           (replace 'install
+            (lambda* (#:key outputs #:allow-other-keys)
+              (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
+                (install-file "bin/freebayes" bin)
+                (install-file "bin/bamleftalign" bin))))
+           ;; There are three tests that fail.  All because of the -P
+           ;; (--perl-regexp) option in grep, which is not compiled into the
+           ;; version of grep in Guix.
+           (replace 'check
+            (lambda* (#:key inputs #:allow-other-keys)
+              (system* "make" "test"))))))
+      (home-page "https://github.com/ekg/freebayes")
+      (synopsis "Haplotype-based variant detector")
+      (description "FreeBayes is a Bayesian genetic variant detector designed to
+find small polymorphisms, specifically SNPs (single-nucleotide polymorphisms),
+indels (insertions and deletions), MNPs (multi-nucleotide polymorphisms), and
+complex events (composite insertion and substitution events) smaller than the
+length of a short-read sequencing alignment.")
+      (license license:expat))))
 
 (define-public r-biocpreprocesscore
   (package
@@ -69,7 +719,6 @@
      "A library of core preprocessing routines.")
     (license license:lgpl2.0+)))
 
-
 (define-public r-wgcna
   (let ((commit "425bc170cc0873ddbd414675ac40f6d4d724c7cb"))
 (package
@@ -90,8 +739,8 @@
   (propagated-inputs
    `( ;; ("r-annotationdbi" ,r-annotationdbi)
      ; ("r-biocparallel" ,r-biocparallel)
-     ("r-dynamictreecut" ,r-dynamictreecut)
      ("r-doparallel" ,r-doparallel)
+     ("r-dynamictreecut" ,r-dynamictreecut)
      ("r-fastcluster" ,r-fastcluster)
      ("r-foreach" ,r-foreach)
      ("r-go-db" ,r-go-db)
@@ -305,37 +954,48 @@ association studies (GWAS).")
     (license license:gpl3))))
 
 (define-public sambamba
-  (let ((commit "2ca5a2dbac5ab90c3b4c588519edc3edcb71df84"))
+  (let ((commit "c810c7ef14957f16288c205fd7b9d25c4ae7005d"))
+  ;;(let ((commit "2ca5a2dbac5ab90c3b4c588519edc3edcb71df84"))
     (package
       (name "sambamba")
       (version (string-append "0.5.9-1." (string-take commit 7)))
       (source (origin
         (method git-fetch)
-        (uri (git-reference                
-              (url "https://github.com/pjotrp/sambamba.git")
+        (uri (git-reference
+              (url "https://github.com/roelj/sambamba.git")
+              ;;(url "https://github.com/pjotrp/sambamba.git")
               (commit commit)))
         (file-name (string-append name "-" version "-checkout"))
         (sha256
          (base32
-          "1f14wn9aaxwjkmla6pzq3s28741carbr2v0fd2v2mm1dcpwnrqz5"))))
+          "0c4c13f021sl7mf5xc2v8dbwsz775n8dlsrrn7qa6qgbx05n54dv"))))
+          ;;"1f14wn9aaxwjkmla6pzq3s28741carbr2v0fd2v2mm1dcpwnrqz5"))))
       (build-system gnu-build-system)
       (native-inputs
        `(("ldc" ,ldc)
-         ("lz4" ,lz4)
+         ;;("lz4" ,lz4)
          ("rdmd" ,rdmd)
          ("zlib" ,zlib)
-         ("perl" ,perl) ; Needed for htslib tests?
-         ("ruby" ,ruby) ; Needed for htslib tests?
-         ("python" ,python) ; Needed for htslib tests?
+         ("perl" ,perl) ; Needed for htslib
+         ("ruby" ,ruby) ; Needed for htslib
+         ("python" ,python) ; Needed for htslib
          ("gcc" ,gcc)
+         ("lz4-src"
+          ,(origin
+             (method url-fetch)
+             (uri "https://github.com/Cyan4973/lz4/archive/160661c7a4cbf805f4af74d2e3932a17a66e6ce7.tar.gz")
+             (sha256
+              (base32 "131nnbsd5dh7c8sdqzc9kawh3mi0qi4qxznv7zhzfszlx4g2fd20"))))
          ("htslib-src"
           ,(origin
              (method url-fetch)
-             (uri "https://github.com/samtools/htslib/archive/1.3.tar.gz")
-             (file-name "htslib-1.3.tar.gz")
+             (uri "https://github.com/lomereiter/htslib/archive/2f3c3ea7b301f9b45737a793c0b2dcf0240e5ee5.tar.gz")
+             ;;(uri "https://github.com/samtools/htslib/archive/1.3.tar.gz")
+             ;;(file-name "htslib-1.3.tar.gz")
              (sha256
-              (base32 "1bqkif7yrqmiqak5yb74kgpb2lsdlg7y344qa1xkdg7k1l4m86i9"))
-             (patches (list (search-patch "htslib-add-cram_to_bam.patch")))))
+              (base32 "0bl6w856afnbgdsw8bybsxpqsyf2ba3f12rqh47hhpxvv866g08w"))))
+              ;;(base32 "1bqkif7yrqmiqak5yb74kgpb2lsdlg7y344qa1xkdg7k1l4m86i9"))
+             ;;(patches (list (search-patch "htslib-add-cram_to_bam.patch")))))
          ("biod-src"
           ,(origin
              (method git-fetch)
@@ -360,14 +1020,17 @@ association studies (GWAS).")
                (and (with-directory-excursion "htslib"
                       (zero? (system* "tar" "xvf" (assoc-ref inputs "htslib-src")
                                       "--strip-components=1")))
+                    (with-directory-excursion "lz4"
+                      (zero? (system* "tar" "xvf" (assoc-ref inputs "lz4-src")
+                                      "--strip-components=1")))
                     (zero? (system* "rm" "-r" "BioD"))
                     (zero? (system* "ln" "--symbolic" "--no-target-directory"
                                     (assoc-ref inputs "biod-src") "BioD")))))
            (replace
             'build
             (lambda* (#:key inputs make-flags #:allow-other-keys)
-              (zero? (system* "make" "-f" "Makefile.guix"
-                              (string-append "LDC_LIB_PATH="
+              (zero? (system* "make" "sambamba-ldmd2-64" "CC=gcc" "D_COMPILER=ldc2"
+                       (string-append "LDC_LIB_PATH="
                                              (assoc-ref inputs "ldc")
                                              "/lib")))))
            (replace
@@ -435,3 +1098,192 @@ supported.")
     (description
      "FastQC aims to provide a QC report which can spot problems which originate either in the sequencer or in the starting library material. It can either run as a stand alone interactive application for the immediate analysis of small numbers of FastQ files, or it can be run in a non-interactive mode where it would be suitable for integrating into a larger analysis pipeline for the systematic processing of large numbers of files.")
     (license license:gpl3+)))
+
+(define-public vcflib
+  (let ((commit "3ce827d8ebf89bb3bdc097ee0fe7f46f9f30d5fb"))
+    (package
+      (name "vcflib")
+      (version (string-append "v1.0.2-" (string-take commit 7)))
+      (source
+       (origin
+         (method url-fetch)
+         (uri (string-append "https://github.com/vcflib/vcflib/archive/"
+                "5ac091365fdc716cc47cc5410bb97ee5dc2a2c92" ".tar.gz"))
+         (file-name "vcflib-5ac0913.tar.gz")
+         (sha256
+          (base32 "0ywshwpif059z5h0g7zzrdfzzdj2gr8xvwlwcsdxrms3p9iy35h8"))))
+      (build-system gnu-build-system)
+      (native-inputs
+       `(("htslib" ,htslib)
+         ("zlib" ,zlib)
+         ("python" ,python-2)
+         ("perl" ,perl)
+         ("tabixpp-src"
+          ,(origin
+            (method url-fetch)
+            (uri (string-append "https://github.com/ekg/tabixpp/archive/"
+                  "bbc63a49acc52212199f92e9e3b8fba0a593e3f7" ".tar.gz"))
+            (file-name "tabixpp-src.tar.gz")
+            (sha256
+             (base32 "1s06wmpgj4my4pik5kp2lc42hzzazbp5ism2y4i2ajp2y1c68g77"))))
+         ("intervaltree-src"
+          ,(origin
+             (method url-fetch)
+             (uri (string-append
+                   "https://github.com/ekg/intervaltree/archive/"
+                   "dbb4c513d1ad3baac516fc1484c995daf9b42838" ".tar.gz"))
+             (file-name "intervaltree-src.tar.gz")
+             (sha256
+              (base32 "19prwpn2wxsrijp5svfqvfcxl5nj7zdhm3jycd5kqhl9nifpmcks"))))
+         ("smithwaterman-src"
+          ,(origin
+            (method url-fetch)
+            (uri (string-append "https://github.com/ekg/smithwaterman/archive/"
+                  "203218b47d45ac56ef234716f1bd4c741b289be1" ".tar.gz"))
+            (file-name "smithwaterman-src.tar.gz")
+            (sha256
+             (base32 "1lkxy4xkjn96l70jdbsrlm687jhisgw4il0xr2dm33qwcclzzm3b"))))
+         ("multichoose-src"
+          ,(origin
+            (method url-fetch)
+            (uri (string-append "https://github.com/ekg/multichoose/archive/"
+                  "73d35daa18bf35729b9ba758041a9247a72484a5" ".tar.gz"))
+            (file-name "multichoose-src.tar.gz")
+            (sha256
+             (base32 "07aizwdabmlnjaq4p3v0vsasgz1xzxid8xcxcw3paq8kh9c1099i"))))
+         ("fsom-src"
+          ,(origin
+            (method url-fetch)
+            (uri (string-append "https://github.com/ekg/fsom/archive/"
+                  "a6ef318fbd347c53189384aef7f670c0e6ce89a3" ".tar.gz"))
+            (file-name "fsom-src.tar.gz")
+            (sha256
+             (base32 "0q6b57ppxfvsm5cqmmbfmjpn5qvx2zi5pamvp3yh8gpmmz8cfbl3"))))
+         ("filevercmp-src"
+          ,(origin
+            (method url-fetch)
+            (uri (string-append "https://github.com/ekg/filevercmp/archive/"
+                  "1a9b779b93d0b244040274794d402106907b71b7" ".tar.gz"))
+            (file-name "filevercmp-src.tar.gz")
+            (sha256
+             (base32 "0yp5jswf5j2pqc6517x277s4s6h1ss99v57kxw9gy0jkfl3yh450"))))
+         ("fastahack-src"
+          ,(origin
+            (method url-fetch)
+            (uri (string-append "https://github.com/ekg/fastahack/archive/"
+                  "c68cebb4f2e5d5d2b70cf08fbdf1944e9ab2c2dd" ".tar.gz"))
+            (file-name "fastahack-src.tar.gz")
+            (sha256
+             (base32 "0j25lcl3jk1kls66zzxjfyq5ir6sfcvqrdwfcva61y3ajc9ssay2"))))))
+      (arguments
+       `(#:tests? #f
+         #:phases
+         (modify-phases %standard-phases
+           (delete 'configure)
+           (delete 'check)
+           (add-after 'unpack 'unpack-submodule-sources
+             (lambda* (#:key inputs #:allow-other-keys)
+               (let ((unpack (lambda (source target)
+                               (with-directory-excursion target
+                                 (zero? (system* "tar" "xvf"
+                                        (assoc-ref inputs source)
+                                        "--strip-components=1"))))))
+                 (and
+                  (unpack "intervaltree-src" "intervaltree")
+                  (unpack "fastahack-src" "fastahack")
+                  (unpack "filevercmp-src" "filevercmp")
+                  (unpack "fsom-src" "fsom")
+                  (unpack "intervaltree-src" "intervaltree")
+                  (unpack "multichoose-src" "multichoose")
+                  (unpack "smithwaterman-src" "smithwaterman")
+                  (unpack "tabixpp-src" "tabixpp")))))
+           (add-after 'unpack-submodule-sources 'fix-makefile
+             (lambda* (#:key inputs #:allow-other-keys)
+               (substitute* '("Makefile")
+                 (("^GIT_VERSION.*") "GIT_VERSION = v1.0.0"))))
+           (replace
+            'build
+            (lambda* (#:key inputs make-flags #:allow-other-keys)
+              (with-directory-excursion "tabixpp"
+                (zero? (system* "make")))
+              (zero? (system* "make" "CC=gcc"
+                (string-append "CFLAGS=\"" "-Itabixpp "
+                  "-I" (assoc-ref inputs "htslib") "/include " "\"") "all"))))
+           (replace
+            'install
+            (lambda* (#:key outputs #:allow-other-keys)
+              (let ((bin (string-append (assoc-ref outputs "out") "/bin"))
+                    (lib (string-append (assoc-ref outputs "out") "/lib")))
+                (for-each (lambda (file)
+                           (install-file file bin))
+                         (find-files "bin" ".*"))
+                (install-file "libvcflib.a" lib)))))))
+      (home-page "https://github.com/vcflib/vcflib/")
+      (synopsis "Library for parsing and manipulating VCF files")
+      (description "Vcflib provides methods to manipulate and interpret
+sequence variation as it can be described by VCF. It is both an API for parsing
+and operating on records of genomic variation as it can be described by the VCF
+format, and a collection of command-line utilities for executing complex
+manipulations on VCF files.")
+      (license license:expat))))
+
+(define-public pindel
+  (package
+   (name "pindel")
+   (version "0.2.5b8")
+   (source (origin
+     (method url-fetch)
+     (uri (string-append "https://github.com/genome/pindel/archive/v"
+                         version ".tar.gz"))
+     (file-name (string-append name "-" version ".tar.gz"))
+     (sha256
+      (base32 "06bsf0psxwf7h5p3j97xkh9k5qrwhxh6xn942y1j1m2inyhgs8bz"))))
+   (build-system gnu-build-system)
+   (inputs
+    `(("samtools" ,samtools)
+      ("htslib" ,htslib)
+      ("zlib" ,zlib)))
+   (native-inputs
+    `(("cppcheck" ,cppcheck)
+      ("python" ,python-2)
+      ("perl" ,perl)))
+   (arguments
+    `(#: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.  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.  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)
+            (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
+              (install-file "src/pindel" bin)
+              (install-file "src/pindel2vcf" bin)
+              (install-file "src/pindel2vcf4tcga" 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
+insertions, inversions, tandem duplications and other structural variants at
+single-based resolution from next-gen sequence data.  It uses a pattern growth
+approach to identify the breakpoints of these variants from paired-end short
+reads.")
+   (license license:gpl3+)))
diff --git a/gn/packages/genenetwork.scm b/gn/packages/genenetwork.scm
index aec305b..1382cfb 100644
--- a/gn/packages/genenetwork.scm
+++ b/gn/packages/genenetwork.scm
@@ -87,7 +87,6 @@
     (description #f)
     (license #f)))
 
-
 (define-public genenetwork1
   (let ((commit "d622c803b"))
   (package
@@ -141,7 +140,7 @@
     (license license:agpl3+))))
 
 (define-public genenetwork2
-  (let ((commit "8c9de7e5a2016f1e5b7397be1a8e84396e3a25c5"))
+  (let ((commit "a8fcff44d3bd768d02e7ed0c80b84d2516bdad2a"))
   (package
     (name "genenetwork2")
     (version (string-append "2.0-" (string-take commit 7) ))
@@ -149,19 +148,21 @@
              (method git-fetch)
              (uri (git-reference
                    ;; (url "https://github.com/genenetwork/genenetwork2.git")
-                   (url "https://github.com/pjotrp/genenetwork2.git")
+                   (url "https://github.com/genenetwork/genenetwork2_diet.git")
                    (commit commit)))
-             (file-name (string-append name "-" (string-take commit 7))) 
+             (file-name (string-append name "-" (string-take commit 7)))
              (sha256
               (base32
-               "1kgigzs4rs6zgbqbnm40rcljzz9prlwv7n2n9an57jk58bjgf6v8"))))
+               "1zs6jgrpwzxmfjz03whnaw8q6h8f53mycl440p058gfn8x7pd618"))))
     (propagated-inputs `(  ;; propagated for development purposes
               ("python" ,python-2) ;; probably superfluous
               ("r" ,r)
               ("r-wgcna" ,r-wgcna)
+              ("r-qtl" ,r-qtl)
               ("redis" ,redis)
               ("mysql" ,mysql)
               ("gemma" ,gemma-git)
+              ("genenetwork2-files-small" ,genenetwork2-files-small)
               ("pylmm-gn2" ,pylmm-gn2)
               ("plink2" ,plink-ng)
               ("nginx" ,nginx)
@@ -181,6 +182,7 @@
               ("python2-passlib" ,python2-passlib)
               ("python2-piddle-gn" ,python2-piddle-gn)
               ("python2-redis" ,python2-redis)
+              ("python2-pil" ,python2-pil)
               ("python2-requests" ,python2-requests)
               ("python2-rpy2" ,python2-rpy2)
               ("python2-scipy" ,python2-scipy)
@@ -190,11 +192,28 @@
               ;; python-yolk is not needed
               ("plink" ,plink) 
               ("qtlreaper" ,qtlreaper) 
-              ("r-qtl" ,r-qtl)
               ))
     (build-system python-build-system)
     (arguments
      `(#:python ,python-2
+       #:phases
+         (modify-phases %standard-phases
+           (add-before 'install 'fix-paths
+             (lambda* (#:key inputs #:allow-other-keys)
+                      (let* (
+                             (datafiles (string-append (assoc-ref inputs "genenetwork2-files-small") "/share/genenetwork2" ))
+                             (pylmmcmd (string-append (assoc-ref inputs "pylmm-gn2") "/bin/pylmm_redis"))
+                             (plink2cmd (string-append (assoc-ref inputs "plink2") "/bin/plink2"))
+                             (gemmacmd (string-append (assoc-ref inputs "gemma") "/bin/gemma"))
+                             )
+                             
+               (substitute* '("etc/default_settings.py")
+                            (("^GENENETWORK_FILES =.*") (string-append "GENENETWORK_FILES = \"" datafiles "\"\n" ))
+                            (("^PYLMM_COMMAND =.*") (string-append "PYLMM_COMMAND = \"" pylmmcmd "\"\n" ))
+                            (("^PLINK_COMMAND =.*") (string-append "PLINK_COMMAND = \"" plink2cmd "\"\n" ))
+                            (("^GEMMA_COMMAND =.*") (string-append "GEMMA_COMMAND = \"" gemmacmd "\"\n" ))
+                            )
+               ))))
        #:tests? #f))   ; no 'setup.py test'
     (home-page "http://genenetwork.org/")
     (synopsis "Full genenetwork services")
@@ -204,6 +223,48 @@
 ;; ./pre-inst-env guix download http://files.genenetwork.org/raw_database/db_webqtl_s.zip
 ;; 0sscjh0wml2lx0mb43vf4chg9gpbfi7abpjxb34n3kyny9ll557x
 
+(define-public genenetwork2-files-small
+  (let ((pfff "xx"))
+    (package
+    (name "genenetwork2-files-small")
+    (version "1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri "http://files.genenetwork.org/data_files/gn2_data_s-20160303-C9E672ECED1F51B915DE419B5B2C524E.tar.lz4")
+       (file-name (string-append name "-" pfff)) 
+       (sha256
+        (base32 "058ymx3af6abdhdxyxj0i9qfvb6v7j091frjpp6jh4ahks7r23lj"))))
+    (build-system trivial-build-system)
+    (native-inputs `(("lz4" ,lz4)
+                     ("tar" ,tar)
+                     ("source" ,source)))
+
+    (arguments
+     `(#:modules ((guix build utils))
+       #:builder
+       (let* ((out (assoc-ref %outputs "out"))
+              (name "gn2_data_s")
+              (tarfn (string-append name ".tar"))
+              (targetdir (string-append out "/share/genenetwork2/"))
+              )
+           (begin
+             (use-modules (guix build utils))
+             (let ((source (assoc-ref %build-inputs "source"))
+                   (lz4unpack (string-append (assoc-ref %build-inputs "lz4") "/bin/lz4"))
+                   (tar (string-append (assoc-ref %build-inputs "tar") "/bin/tar"))
+                   )
+               (and 
+                    (zero? (system* lz4unpack source "-d" tarfn))
+                    (zero? (system* tar "xf" tarfn))
+                    (mkdir-p targetdir)
+                    (copy-recursively name targetdir)
+                    ))))))
+    (home-page "http://genenetwork.org/")
+    (synopsis "Small file archive to run on genenetwork")
+    (description "Genenetwork genotype and mapping files.")
+    (license license:agpl3+))))
+
 (define-public genenetwork2-database-small
   (let ((md5 "93e745e9c"))
     (package
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 <roel@gnu.org>
+;;;
+;;; 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 <http://www.gnu.org/licenses/>.
+
+(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)))
diff --git a/gn/packages/llvm.scm b/gn/packages/llvm.scm
index 83ea5d1..607f7c2 100644
--- a/gn/packages/llvm.scm
+++ b/gn/packages/llvm.scm
@@ -19,7 +19,7 @@
 ;;; You should have received a copy of the GNU General Public License
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
-(define-module (gnu packages llvm)
+(define-module (gn packages llvm)
   #:use-module (guix packages)
   #:use-module (guix licenses)
   #:use-module (guix download)
@@ -62,4 +62,4 @@ languages.  It currently supports compilation of C and C++ programs, using
 front-ends derived from GCC 4.0.1.  A new front-end for the C family of
 languages is in development.  The compiler infrastructure includes mirror sets
 of programming tools as well as libraries with equivalent functionality.")
-    (license license:ncsa)))
+    (license ncsa)))
diff --git a/gn/packages/pocl.scm b/gn/packages/pocl.scm
index 39f16c0..7d61526 100644
--- a/gn/packages/pocl.scm
+++ b/gn/packages/pocl.scm
@@ -52,7 +52,7 @@
   #:use-module (gnu packages version-control)
   #:use-module (gnu packages ruby)
   #:use-module (gnu packages gnupg)
-  #:use-module (gnu packages zip)  
+  #:use-module ((gnu packages zip) #:prefix gnuzip:)
   #:use-module (gnu packages linux))
 
 (define-public pocl
@@ -131,7 +131,7 @@
              (sha256
               (base32
                "1rgaixwnxmrq2aq4kcdvs0yx7i6krakarya9vqs7qwsv5hzc32hc"))))
-    (inputs `(("zip" ,zip)
+    (inputs `(("zip" ,gnuzip:zip)
              ("autoconf" ,autoconf)
              ("automake" ,automake)
              ("ruby" ,ruby)
diff --git a/gn/packages/python.scm b/gn/packages/python.scm
index 7781521..47b2c23 100644
--- a/gn/packages/python.scm
+++ b/gn/packages/python.scm
@@ -279,16 +279,14 @@ powerful language for representing information.")
         (base32
           "06qzgwk7j66k8ggx51i6wxx0f0zsppp7w4bh6gjd0cr9rfs86jn7"))))
   (build-system python-build-system)
-  (inputs
+  (propagated-inputs
    `(
      ("mysql" ,mysql)
      ("python-nose" ,python-nose)
      ("zlib" ,zlib)
      ("openssl" ,openssl)
      ("libgcrypt" ,libgcrypt)
-     ))
-  (propagated-inputs
-   `(("python-setuptools" ,python-setuptools)
+     ("python-setuptools" ,python-setuptools)
      ))
   (arguments
    `(#:tests? #f))   ; wants a running MySQL server
@@ -357,7 +355,7 @@ project)")
   (description #f)
   (license #f)))
 
-(define-public python2-pil-1.1.6
+(define-public python2-pil
   (package
     (name "python2-pil")
     (version "1.1.6")
@@ -434,6 +432,8 @@ version ".tgz"))
     (build-system python-build-system)
     (native-inputs
      `(("python2-setuptools" ,python2-setuptools)))
+    (propagated-inputs
+     `(("python2-pil" ,python2-pil)))
     (arguments
      `(
        #:python ,python-2