about summary refs log tree commit diff
path: root/gn/packages/genenetwork.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gn/packages/genenetwork.scm')
-rw-r--r--gn/packages/genenetwork.scm298
1 files changed, 298 insertions, 0 deletions
diff --git a/gn/packages/genenetwork.scm b/gn/packages/genenetwork.scm
new file mode 100644
index 0000000..79ad3fe
--- /dev/null
+++ b/gn/packages/genenetwork.scm
@@ -0,0 +1,298 @@
+;; Bioinformatics module
+
+(define-module (gn packages genenetwork)
+  #: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 build-system gnu)
+  #:use-module (guix build-system cmake)
+  #:use-module (guix build-system perl)
+  #:use-module (guix build-system python)
+  ;; #:use-module (guix build-system ruby)
+  #:use-module (guix build-system r)
+  #:use-module (guix build-system trivial)
+  #:use-module (gnu packages)
+  #: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 cpio)
+  #:use-module (gnu packages file)
+  #:use-module (gnu packages gcc)
+  #:use-module (gnu packages graphviz)
+  #:use-module (gnu packages java)
+  #:use-module (gnu packages linux)
+  #:use-module (gnu packages ldc)
+  #:use-module (gnu packages machine-learning)
+  #:use-module (gnu packages maths)
+  #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages perl)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages popt)
+  #:use-module (gnu packages protobuf)
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages statistics)
+  #:use-module (gnu packages tbb)
+  #:use-module (gnu packages textutils)
+  #: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 bioinformatics)
+  #:use-module (gn packages python)
+  #:use-module (gn packages statistics)
+  #:use-module (srfi srfi-1))
+
+(define-public my-deploy
+  (package
+    (name "my-deploy")
+    (version "0.0.1")
+    (source #f)
+    (build-system trivial-build-system)
+    (arguments
+     `(#:guile ,%bootstrap-guile
+       #:modules ((guix build utils))
+       #:builder
+       (let* ((out  (assoc-ref %outputs "out"))
+              (bash (assoc-ref %build-inputs "bash"))
+              (foo  (string-append out "/foo")))
+         (begin
+           (use-modules (guix build utils))
+           (mkdir out)
+           (call-with-output-file foo
+             (lambda (p)
+               (format p
+                       "#!~a~%echo \"${GUIX_FOO} ${GUIX_BAR}\"~%"
+                       bash)))
+           (chmod foo #o777)
+           ;; wrap-program uses `which' to find bash for the wrapper
+           ;; shebang, but it can't know about the bootstrap bash in
+           ;; the store, since it's not named "bash".  Help it out a
+           ;; bit by providing a symlink it this package's output.
+           (symlink bash (string-append out "/bash"))
+           (setenv "PATH" out)
+           (wrap-program foo `("GUIX_FOO" prefix ("hello")))
+           (wrap-program foo `("GUIX_BAR" prefix ("world")))
+           #t))))
+    (inputs `(("bash" ,(search-bootstrap-binary "bash"
+                                                (%current-system)))))
+
+    (home-page #f)
+    (synopsis #f)
+    (description #f)
+    (license #f)))
+
+(define-public genenetwork1
+  (let ((commit "d622c803b"))
+  (package
+    (name "genenetwork1")
+    (version (string-append "1.0-" commit ))
+    (source (origin
+             (method git-fetch)
+             (uri (git-reference
+                   (url "https://github.com/genenetwork/genenetwork.git")
+                   ;; (url "https://github.com/pjotrp/genenetwork.git")
+                   (commit commit)))
+             (file-name (string-append name "-" commit)) 
+             (sha256
+              (base32
+               "14fzfcm4vl20mlhxjslfa01i1nmxpk8lbxmfvpq6dyfc22ir62py"))))
+    (propagated-inputs `(
+              ("python" ,python-2) ;; probably superfluous
+              ("r" ,r) 
+    ))
+    (inputs `(
+              ;; http://spring211.uthsc.edu/gn/thirdparty.tbz
+              ;; graphviz-2.22.2  htmlgen  json  numarray-1.5.2  piddle  PIL  pp-1.5.7  pyx  pyXLWriter  svg
+              ("mysql" ,mysql)
+              ("nginx" ,nginx)
+              ("graphviz" ,graphviz)
+              ; ("python2-jinja2" ,python2-jinja2)
+              ; ("python2-sqlalchemy" ,python2-sqlalchemy)
+              ; ("python2-setuptools" ,python2-setuptools)
+              ; ("python2-scipy" ,python2-scipy)
+              ;; looks like python-numarray is not needed
+              ; ("python2-numpy" ,python2-numpy)
+              ; ("python2-pandas" ,python2-pandas)
+              ; ("python2-passlib" ,python2-passlib)
+              ; ("python2-redis" ,python2-redis)
+              ; ("python2-requests" ,python2-requests)
+              ; ("python2-simplejson" ,python2-simplejson)
+              ; ("python2-pyyaml" ,python2-pyyaml)
+              ;; python-yolk is not needed
+              ("python2-pil" ,python2-pil)
+              ("python2-numarray" ,python2-numarray)
+              ("plink" ,plink) ;; gn1
+              ; ("r-qtl" ,r-qtl)
+              ))
+    (build-system python-build-system)
+    (arguments
+     `(#:python ,python-2
+       #:tests? #f))   ; no 'setup.py test'
+    (home-page "http://genenetwork.org/")
+    (synopsis "Full genenetwork services")
+    (description "Genenetwork installation sumo.")
+    (license license:agpl3+))))
+
+(define-public genenetwork2
+  (let ((commit "a8fcff44d3bd768d02e7ed0c80b84d2516bdad2a"))
+  (package
+    (name "genenetwork2")
+    (version (string-append "2.0-" (string-take commit 7) ))
+    (source (origin
+             (method git-fetch)
+             (uri (git-reference
+                   ;; (url "https://github.com/genenetwork/genenetwork2.git")
+                   (url "https://github.com/genenetwork/genenetwork2_diet.git")
+                   (commit commit)))
+             (file-name (string-append name "-" (string-take commit 7)))
+             (sha256
+              (base32
+               "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)
+              ("python2-flask" ,python2-flask)
+              ("python2-htmlgen-gn" ,python2-htmlgen-gn)
+              ("python2-jinja2" ,python2-jinja2)
+              ("python2-sqlalchemy" ,python2-sqlalchemy)
+              ("python2-flask-sqlalchemy" ,python2-flask-sqlalchemy)
+              ("python2-setuptools" ,python2-setuptools)
+              ("python2-scipy" ,python2-scipy)
+              ;; looks like python-numarray is not needed
+              ("python2-mysqlclient" ,python2-mysqlclient)
+              ("python2-numarray" ,python2-numarray)
+              ("python2-numpy" ,python2-numpy)
+              ("python2-pandas" ,python2-pandas)
+              ("python2-parallel" ,python2-parallel)
+              ("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)
+              ("python2-simplejson" ,python2-simplejson)
+              ("python2-pyyaml" ,python2-pyyaml)
+              ("python2-xlsxwriter" ,python2-xlsxwriter)
+              ;; python-yolk is not needed
+              ("plink" ,plink) 
+              ("qtlreaper" ,qtlreaper) 
+              ))
+    (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")
+    (description "Genenetwork installation sumo.")
+    (license license:agpl3+))))
+
+;; ./pre-inst-env guix download http://files.genenetwork.org/raw_database/db_webqtl_s.zip
+;; 0sscjh0wml2lx0mb43vf4chg9gpbfi7abpjxb34n3kyny9ll557x
+
+(define-public genenetwork2-files-small1
+  (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
+    (name "genenetwork2-database-small")
+    (version "1.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri "http://files.genenetwork.org/raw_database/db_webqtl_s.zip")
+       (file-name (string-append name "-" md5)) 
+       (sha256
+        (base32 "0sscjh0wml2lx0mb43vf4chg9gpbfi7abpjxb34n3kyny9ll557x"))))
+    (build-system trivial-build-system)
+    (native-inputs `(("unzip" ,unzip)
+                     ("source" ,source)))
+
+    (arguments
+     `(#:modules ((guix build utils))
+       #:builder (begin
+                   (use-modules (guix build utils))
+                   (let ((source (assoc-ref %build-inputs "source"))
+                         (unzip (string-append (assoc-ref %build-inputs "unzip") "/bin/unzip"))
+                         )
+                   (and (mkdir "db")
+                        (zero? (system* unzip source "-d" "db"))
+                        (chdir "db"))))))
+    (home-page "http://genenetwork.org/")
+    (synopsis "Small database to run on genenetwork")
+    (description "Genenetwork installation + database.")
+    (license license:agpl3+))))
+