about summary refs log tree commit diff
diff options
context:
space:
mode:
authorPjotr Prins2016-03-09 11:22:34 -0500
committerPjotr Prins2016-03-09 11:22:34 -0500
commit1b22d135eaf10407810cdc639d9af23efddb5330 (patch)
treee087a23758a6407001a92445f3c5b198613bb5b6
parent7f5437ebbe5980f9dbd6cad18bbebb2b0462cf7d (diff)
parentd0a8f6e732ab4c0b1a93c3741f246c0ce812ef95 (diff)
downloadguix-bioinformatics-1b22d135eaf10407810cdc639d9af23efddb5330.tar.gz
Merge branch 'master' of github.com:roelj/guix-bioinformatics into roelj
-rw-r--r--gn/packages/bioinformatics.scm123
-rw-r--r--gn/packages/genenetwork.scm21
-rw-r--r--gn/packages/python.scm2
3 files changed, 115 insertions, 31 deletions
diff --git a/gn/packages/bioinformatics.scm b/gn/packages/bioinformatics.scm
index 295a2b3..5bf7843 100644
--- a/gn/packages/bioinformatics.scm
+++ b/gn/packages/bioinformatics.scm
@@ -100,10 +100,11 @@ mappability data (files created by GEM). ")
     (license license:gpl2+)))
 
 (define-public freebayes
-  (let ((commit "3ce827d8ebf89bb3bdc097ee0fe7f46f9f30d5fb"))
+  (let ((commit "3ce827d8ebf89bb3bdc097ee0fe7f46f9f30d5fb")
+        (revision "1"))
     (package
       (name "freebayes")
-      (version (string-append "v1.0.2-" (string-take commit 7)))
+      (version (string-append "1.0.2-" revision "." (string-take commit 7)))
       (source (origin
         (method git-fetch)
         (uri (git-reference
@@ -113,11 +114,18 @@ mappability data (files created by GEM). ")
         (sha256
          (base32 "1sbzwmcbn78ybymjnhwk7qc5r912azy5vqz2y7y81616yc3ba2a2"))))
       (build-system gnu-build-system)
+      (inputs
+       `(("zlib" ,zlib)))
       (native-inputs
-       `(("cmake" ,cmake)
+       `(("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)
          ("htslib" ,htslib)
-         ("zlib" ,zlib)
          ("python" ,python-2)
+         ("r" ,r)
          ("perl" ,perl)
          ("bamtools-src"
           ,(origin
@@ -193,20 +201,34 @@ mappability data (files created by GEM). ")
             (file-name "fastahack-src.tar.gz")
             (sha256
              (base32 "0j25lcl3jk1kls66zzxjfyq5ir6sfcvqrdwfcva61y3ajc9ssay2"))))
-            ))
+         ;; These submodules are needed to run the tests.
+         ("bash-tap-src"
+          ,(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
-       `(#:tests? #f
-         #:phases
+       `(#: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"))))))
+                                                 (assoc-ref inputs source)
+                                                 "--strip-components=1"))))))
                  (and
                   (unpack "bamtools-src" "bamtools")
                   (unpack "vcflib-src" "vcflib")
@@ -217,47 +239,46 @@ mappability data (files created by GEM). ")
                   (unpack "intervaltree-src" "vcflib/intervaltree")
                   (unpack "multichoose-src" "vcflib/multichoose")
                   (unpack "smithwaterman-src" "vcflib/smithwaterman")
-                  (unpack "tabixpp-src" "vcflib/tabixpp")))))
+                  (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
+           (replace 'build
             (lambda* (#:key inputs make-flags #:allow-other-keys)
               (and
-               ;; We must compile Bamtools before we can compile the main
-               ;; project.
+               ;; 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")))))
-               ;; We must compile vcflib before we can compile the main
-               ;; project.
+               ;; Compile vcflib before we compiling the main project.
                (with-directory-excursion "vcflib"
                  (with-directory-excursion "tabixpp"
                    (zero? (system* "make")))
                  (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
+           (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))))
-           ;; (replace
-           ;;  'check
-           ;;  (lambda* (#:key outputs #:allow-other-keys)
-           ;;    (with-directory-excursion "test"
-           ;;      (zero? (system* "make" "test")))))
-             )))
+           ;; 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.")
+      (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
@@ -305,8 +326,8 @@ length of a short-read sequencing alignment.")
   (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)
@@ -793,3 +814,49 @@ 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
+    `(#:tests? #f
+      #:phases
+      (modify-phases %standard-phases
+        (delete 'configure) ; There is no configure phase.
+        (replace 'build
+          (lambda* (#:key inputs #:allow-other-keys)
+            ;; The first run creates a Makefile.local file.
+            (system* "make" (string-append "SAMTOOLS=" (assoc-ref inputs "samtools")))
+            ;; The second run actually compiles the program.
+            (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)))))))
+   (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 fdcbb7f..3d62d55 100644
--- a/gn/packages/genenetwork.scm
+++ b/gn/packages/genenetwork.scm
@@ -154,10 +154,14 @@
              (sha256
               (base32
                "1zs6jgrpwzxmfjz03whnaw8q6h8f53mycl440p058gfn8x7pd618"))))
+    (inputs `(
+              ("r-wgcna" ,r-wgcna)
+              ("r-qtl" ,r-qtl)))
     (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)
@@ -181,6 +185,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,7 +195,6 @@
               ;; python-yolk is not needed
               ("plink" ,plink) 
               ("qtlreaper" ,qtlreaper) 
-              ("r-qtl" ,r-qtl)
               ))
     (build-system python-build-system)
     (arguments
@@ -199,9 +203,20 @@
          (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" )))
+                      (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" )))))))
+                            (("^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")
diff --git a/gn/packages/python.scm b/gn/packages/python.scm
index 6fff9a3..8157c0b 100644
--- a/gn/packages/python.scm
+++ b/gn/packages/python.scm
@@ -432,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