diff options
author | Dennis E. Mungai | 2016-03-01 14:25:45 +0300 |
---|---|---|
committer | Dennis E. Mungai | 2016-03-01 14:25:45 +0300 |
commit | a0d619f653690ce68e232d8d2b944768f9e2abdc (patch) | |
tree | e10b23f86231c238299a770d900a709923d76e33 | |
parent | ef781382de7febeec2b4b8f854c88923d9f72e5f (diff) | |
parent | c9c9ff5f70e0fbb08c6b15d9cfc7a541b34cc818 (diff) | |
download | guix-bioinformatics-a0d619f653690ce68e232d8d2b944768f9e2abdc.tar.gz |
Merge pull request #3 from genenetwork/master
Pull in Pjotr's changes.
-rw-r--r-- | gn/packages/bioinformatics.scm | 419 | ||||
-rw-r--r-- | gn/packages/genenetwork.scm | 237 | ||||
-rw-r--r-- | gn/packages/hyphy.scm | 63 | ||||
-rw-r--r-- | gn/packages/python.scm | 99 | ||||
-rw-r--r-- | gn/packages/ruby.scm | 2 | ||||
-rw-r--r-- | gn/packages/statistics.scm | 262 | ||||
-rw-r--r-- | htslib-add-cram_to_bam.patch | 27 |
7 files changed, 763 insertions, 346 deletions
diff --git a/gn/packages/bioinformatics.scm b/gn/packages/bioinformatics.scm index b7384ef..b503e22 100644 --- a/gn/packages/bioinformatics.scm +++ b/gn/packages/bioinformatics.scm @@ -10,7 +10,7 @@ #: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 ruby) #:use-module (guix build-system r) #:use-module (guix build-system trivial) #:use-module (gnu packages) @@ -26,6 +26,7 @@ #: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) @@ -44,84 +45,82 @@ #: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 my-deploy + +(define-public r-biocpreprocesscore (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))))) + (name "r-biocpreprocesscore") + (version "1.32.0") + (source (origin + (method url-fetch) + (uri (bioconductor-uri "preprocessCore" version)) + (sha256 + (base32 + "07isghjkqm91rg37l1fzpjrbq36b7w4pbsi95wwh6a8qq7r69z1n")))) + (properties + `((upstream-name . "BiocpreprocessCore") + (r-repository . bioconductor))) + (build-system r-build-system) + (home-page "http://bioconductor.org/packages/preprocessCore") + (synopsis "Preprocess functions for Bioconductor") + (description + "A library of core preprocessing routines.") + (license license:lgpl2.0+))) - (home-page #f) - (synopsis #f) - (description #f) - (license #f))) (define-public r-wgcna + (let ((commit "425bc170cc0873ddbd414675ac40f6d4d724c7cb")) (package (name "r-wgcna") - (version "1.48") - (source - (origin - (method url-fetch) - (uri (cran-uri "WGCNA" version)) - (sha256 - (base32 - "18yl2v3s279saq318vd5hlwnqfm89rxmjjji778d2d26vviaf6bn")))) + (version (string-append "1.49-" commit)) + (source (origin + (method git-fetch) + (uri (git-reference + ;; (url "https://github.com/genenetwork/WGCNA.git") + (url "https://github.com/pjotrp/WGCNA.git") + (commit commit))) + (file-name (string-append name "-" commit)) + (sha256 + (base32 + "1zqnsb8s3065rq1y2y3l79zi8wmdwjkcjls96ypycrb7pmdil58j")))) (properties `((upstream-name . "WGCNA"))) (build-system r-build-system) - ;; (propagated-inputs - ;; `( ;; ("r-annotationdbi" ,r-annotationdbi) - ;; ("r-doparallel" ,r-doparallel) - ;; ("r-dynamictreecut" ,r-dynamictreecut) - ;; ("r-fastcluster" ,r-fastcluster) - ;; ("r-foreach" ,r-foreach) - ;; ("r-go.db" ,r-go.db) - ;; ("r-grdevices" ,r-grdevices) - ;; ("r-hmisc" ,r-hmisc) - ;; ("r-impute" ,r-impute) - ;; ("r-matrixstats" ,r-matrixstats) - ;; ("r-parallel" ,r-parallel) - ;; ("r-preprocesscore" ,r-preprocesscore) - ;; ("r-splines" ,r-splines) - ;; ("r-stats" ,r-stats) - ;; ("r-survival" ,r-survival) - ;; ("r-utils" ,r-utils))) + (propagated-inputs + `( ;; ("r-annotationdbi" ,r-annotationdbi) + ; ("r-biocparallel" ,r-biocparallel) + ("r-dynamictreecut" ,r-dynamictreecut) + ("r-doparallel" ,r-doparallel) + ("r-fastcluster" ,r-fastcluster) + ("r-foreach" ,r-foreach) + ("r-go-db" ,r-go-db) + ; ("r-grdevices" ,r-grdevices) + ("r-hmisc" ,r-hmisc) + ("r-impute" ,r-impute) + ("r-matrixstats" ,r-matrixstats) + ; ("r-parallel" ,r-parallel) + ("r-biocpreprocesscore" ,r-biocpreprocesscore) + ; ("r-splines" ,r-splines) + ; ("r-stats" ,r-stats) + ; ("r-survival" ,r-survival) + ; ("r-utils" ,r-utils) + )) + (arguments + `( + #:tests? #f)) ; no 'setup.py test' (home-page "http://www.genetics.ucla.edu/labs/horvath/CoexpressionNetwork/Rpackages/WGCNA/") (synopsis - "Weighted Correlation Network Analysis") + "Weighted gene correlation network analysis (wgcna)") (description - "Functions necessary to perform Weighted Correlation Network Analysis on high-dimensional data. Includes functions for rudimentary data cleaning, construction of correlation networks, module identification, summarization, and relating of variables and modules to sample traits. Also includes a number of utility functions for data manipulation and visualization.") - (license license:gpl2+))) + "Functions necessary to perform Weighted Correlation Network +Analysis on high-dimensional data. Includes functions for rudimentary +data cleaning, construction of correlation networks, module +identification, summarization, and relating of variables and modules +to sample traits. Also includes a number of utility functions for +data manipulation and visualization.") + (license license:gpl2+)))) (define-public qtlreaper (package @@ -156,7 +155,7 @@ test. For the permutation test, it performs only as many permutations as are necessary to define the empirical P-value to a reasonable precision. It also performs bootstrap resampling to estimate the confidence region for the location of a putative QTL.") - (license license:gpl2))) + (license license:gpl2+))) (define-public plink2 (package @@ -305,230 +304,86 @@ mixed model and some of its close relatives for genome-wide association studies (GWAS).") (license license:gpl3)))) - -(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)) +(define-public sambamba + (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") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1f14wn9aaxwjkmla6pzq3s28741carbr2v0fd2v2mm1dcpwnrqz5")))) + (build-system gnu-build-system) + (native-inputs + `(("ldc" ,ldc) + ("lz4" ,lz4) + ("rdmd" ,rdmd) + ("zlib" ,zlib) + ("perl" ,perl) ; Needed for htslib tests? + ("ruby" ,ruby) ; Needed for htslib tests? + ("python" ,python) ; Needed for htslib tests? + ("gcc" ,gcc) + ("htslib-src" + ,(origin + (method url-fetch) + (uri "https://github.com/samtools/htslib/archive/1.3.tar.gz") + (file-name "htslib-1.3.tar.gz") (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 "9e9475053")) - (package - (name "genenetwork2") - (version (string-append "2.0-" commit )) - (source (origin + (base32 "1bqkif7yrqmiqak5yb74kgpb2lsdlg7y344qa1xkdg7k1l4m86i9")) + (patches (list (search-patch "htslib-add-cram_to_bam.patch"))))) + ("biod-src" + ,(origin (method git-fetch) (uri (git-reference - ;; (url "https://github.com/genenetwork/genenetwork2.git") - (url "https://github.com/pjotrp/genenetwork2.git") - (commit commit))) - (file-name (string-append name "-" commit)) + (url "https://github.com/biod/BioD.git") + (commit "7efdb8a2f7fdcd71c9ad9596be48d1262bb1bd5b"))) + (file-name "biod-src") (sha256 - (base32 - "09hvy9mf4dnmkb8qg49viffzrxk53m2kr4r955m84dxaa5pdrjhd")))) - (propagated-inputs `( ;; propagated for development purposes - ("python" ,python-2) ;; probably superfluous - ("r" ,r) - ("redis" ,redis) - ("mysql" ,mysql) - ("gemma" ,gemma-git) - ("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" ,python2-piddle) - ("python2-redis" ,python2-redis) - ("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) - ("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 rdmd - (package - (name "rdmd") - (version "20160217") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/D-Programming-Language/tools.git") - (commit "4dba6877c481c1a911a7d50714da8fbd80022f0e"))) - (file-name (string-append name "-" version "-checkout")) - (sha256 - (base32 - "1pcx5lyqzrip86f4vv60x292rpvnwsq2hvl1znm9x9rn68f34m45")))) - (build-system gnu-build-system) - (arguments - '(#:phases - (modify-phases %standard-phases - (delete 'configure) - (delete 'check) - (replace - 'build - (lambda* _ - (zero? (system* "ldc2" "rdmd.d")))) - (replace - 'install - (lambda* (#:key outputs #:allow-other-keys) - (let ((bin (string-append (assoc-ref outputs "out") "/bin"))) - (mkdir-p bin) - (copy-file "rdmd" (string-append bin "/rdmd")))))))) - (native-inputs - `(("gcc" ,gcc) - ("ldc" ,ldc))) - (home-page "https://github.com/D-Programming-Language/tools/") - (synopsis "Extra tools for building D programs") - (description - "This repository hosts various tools redistributed with DMD or used -internally during various build tasks.") - (license license:boost1.0))) - -(define-public sambamba - (package - (name "sambamba") - (version "0.5.9") - (source (origin - (method url-fetch) - (uri (string-append - "https://github.com/lomereiter/sambamba/archive/v" - version ".tar.gz")) - (file-name (string-append "sambamba-" version ".tar.gz")) - (sha256 - (base32 "152zbg4m10ikr7xgk20c0nwqwrqvydmpc73p2c1fqmbhpk0l0ws6")))) - (build-system gnu-build-system) - (inputs - `(("ldc" ,ldc) - ;; These are currently included in "ldc". - ;;("druntime-ldc" ,druntime-ldc) - ;;("phobos2-ldc" ,phobos2-ldc) - ("lz4" ,lz4))) - (native-inputs - `(("ldc" ,ldc) - ;;("druntime-ldc" ,druntime-ldc) - ;;("phobos2-ldc" ,phobos2-ldc) - ("lz4" ,lz4) - ("gcc" ,gcc) - ("rdmd" ,rdmd) - ("htslib-src" - ,(origin - (method url-fetch) - (uri (string-append - "https://github.com/lomereiter/htslib/archive/0.2.0-rc10.tar.gz")) - (file-name (string-append "htslib-0.2.0-rc10.tar.gz")) - (sha256 - (base32 "1k6dlf6m8yayhcp7b4yisgw1xqdy1xg2xyrllss6ld0wg00hfcbs")))) - ("biod-src" - ,(origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/biod/BioD.git") - (commit "7efdb8a2f7fdcd71c9ad9596be48d1262bb1bd5b"))) - (sha256 - (base32 "09icc2bjsg9y4hxjim4ql275izadf0kh1nnmapg8manyz6bc8svf")) - (file-name "biod"))))) - (arguments - '(#:phases - (modify-phases %standard-phases - (delete 'configure) - (add-after 'unpack 'unpack-htslib-sources - (lambda* (#:key inputs #:allow-other-keys) - ;; Unfortunately, the current build compiles htslib statically - ;; into the executable. Instead of patching the build files - ;; for Guix, this should be resolved on Sambamba upstream. For - ;; now, just extract the source code to the desired directory. - (and (with-directory-excursion "htslib" - (zero? (system* "tar" "xvf" (assoc-ref inputs "htslib-src") - "--strip-components=1"))) - (zero? (system* "cp" "-R" (assoc-ref inputs "biod-src") "BioD"))))) - ;; Building a production-quality executable is done with a - ;; non-default make target. Adding it with #:make-flags breaks - ;; building tests. Therefore, the default make got replaced by this. - (replace - 'build - (lambda* (#:key (make-flags '()) #:allow-other-keys) - (zero? (system* "make" "sambamba-ldmd2-64" make-flags))))))) - (home-page "https://github.com/lomereiter/sambamba") - (synopsis "A tool for working with SAM and BAM files written in D.") - (description - "Sambamba is a high performance modern robust and fast tool (and + (base32 "09icc2bjsg9y4hxjim4ql275izadf0kh1nnmapg8manyz6bc8svf")))))) + (arguments + `(#:tests? #f + #:make-flags (list "-f" "Makefile.guix") + #:phases + (modify-phases %standard-phases + (delete 'configure) + (delete 'check) + (add-after 'unpack 'unpack-htslib-sources + (lambda* (#:key inputs #:allow-other-keys) + ;; The current build compiles htslib statically into the + ;; executable. On top of that, we need to patch the latest + ;; version of htslib to have it working with Sambamba. + (and (with-directory-excursion "htslib" + (zero? (system* "tar" "xvf" (assoc-ref inputs "htslib-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=" + (assoc-ref inputs "ldc") + "/lib"))))) + (replace + 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((bin (string-append (assoc-ref outputs "out") "/bin"))) + (install-file "build/sambamba" bin))))))) + (home-page "https://github.com/lomereiter/sambamba") + (synopsis "A tool for working with SAM and BAM files written in D.") + (description + "Sambamba is a high performance modern robust and fast tool (and library), written in the D programming language, for working with SAM and BAM files. Current parallelised functionality is an important subset of samtools functionality, including view, index, sort, markdup, and depth.") - (license license:gpl2+))) + (license license:gpl2+)))) (define-public picard (package diff --git a/gn/packages/genenetwork.scm b/gn/packages/genenetwork.scm new file mode 100644 index 0000000..aec305b --- /dev/null +++ b/gn/packages/genenetwork.scm @@ -0,0 +1,237 @@ +;; 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 "8c9de7e5a2016f1e5b7397be1a8e84396e3a25c5")) + (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/pjotrp/genenetwork2.git") + (commit commit))) + (file-name (string-append name "-" (string-take commit 7))) + (sha256 + (base32 + "1kgigzs4rs6zgbqbnm40rcljzz9prlwv7n2n9an57jk58bjgf6v8")))) + (propagated-inputs `( ;; propagated for development purposes + ("python" ,python-2) ;; probably superfluous + ("r" ,r) + ("r-wgcna" ,r-wgcna) + ("redis" ,redis) + ("mysql" ,mysql) + ("gemma" ,gemma-git) + ("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-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) + ("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+)))) + +;; ./pre-inst-env guix download http://files.genenetwork.org/raw_database/db_webqtl_s.zip +;; 0sscjh0wml2lx0mb43vf4chg9gpbfi7abpjxb34n3kyny9ll557x + +(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+)))) + diff --git a/gn/packages/hyphy.scm b/gn/packages/hyphy.scm index 23c0406..fea73a4 100644 --- a/gn/packages/hyphy.scm +++ b/gn/packages/hyphy.scm @@ -17,7 +17,7 @@ ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (gn packages hyphy) - #:use-module ((guix licenses)) + #:use-module ((guix licenses) #:prefix license:) #:use-module (guix download) #:use-module (guix build-system gnu) #:use-module (guix build-system cmake) @@ -54,52 +54,31 @@ (sha256 (base32 "00i3609nywb1xfq50p3kvfbvahql241ciq23jrf67z0yp4y5l5a9")))) - (native-inputs `(("autoconf" ,autoconf) - ("automake" ,automake) - ("cmake" ,cmake) - ("gawk" ,gawk) - ("libtool" ,libtool) - ("pkg-config" ,pkg-config))) - (inputs `(("boost" ,boost) - ("curl" ,curl) - ("atlas" ,atlas) - ("dbus" ,dbus) - ("enca" ,enca) - ("eudev" ,eudev) - ("glew" ,glew) - ("lapack" ,lapack) - ("libcap" ,libcap) - ("libjpeg" ,libjpeg) - ("libltdl" ,libltdl) - ("libtiff" ,libtiff) - ("libyajl" ,libyajl) - ("mesa-utils" ,mesa-utils) - ("mysql" ,mysql) - ("python" ,python-2) - ("freeimage" ,freeimage) - ("fftw" ,fftw) - ("fftwf" ,fftwf) - ("fftw-openmpi" ,fftw-openmpi) - ("glew" ,glew) - ("glu" ,glu) - ("openblas" ,openblas) - ("git" ,git) - ("cmake" ,cmake))) + (inputs + `(("python" ,python-2) + ("fftw-openmpi" ,fftw-openmpi))) (build-system cmake-build-system) (arguments '(#:phases (modify-phases %standard-phases - (add-after 'unpack `bootstrap - (lambda _ - (zero? (system* "make" "MPI"))))))) + (add-after 'unpack `bootstrap + (lambda _ + (zero? (system* "make" "MPI"))))))) (arguments - `(#:configure-flags '("-DCMAKE_BUILD_TYPE=Release") #:tests? #f)) - (synopsis "hyphy: an open-source software package for the analysis of genetic sequences using techniques in phylogenetics, molecular evolution, and machine learning.") - (description "HyPhy is an open-source software package for the analysis of genetic sequences using techniques in phylogenetics, molecular evolution, and machine learning. - It features a complete graphical user interface (GUI) and a rich scripting language for limitless customization of analyses. Additionally, HyPhy features support for - parallel computing environments (via message passing interface (MPI)) and it can be compiled as a shared library and called from other programming environments such as - Python and R. ") + `(#:configure-flags '("-DCMAKE_BUILD_TYPE=Release") + #:tests? #f)) + (synopsis "hyphy: an open-source software package for the analysis +of genetic sequences using techniques in phylogenetics, molecular +evolution, and machine learning.") + (description "HyPhy is an open-source software package for the +analysis of genetic sequences using techniques in phylogenetics, +molecular evolution, and machine learning. It features a complete +graphical user interface (GUI) and a rich scripting language for +limitless customization of analyses. Additionally, HyPhy features +support for parallel computing environments (via message passing +interface (MPI)) and it can be compiled as a shared library and called +from other programming environments such as Python and R. ") (home-page "http://hyphy.org") - (license (list gpl2 gpl2+ gpl3 gpl3+)))) + (license license:expat))) diff --git a/gn/packages/python.scm b/gn/packages/python.scm index 8f2bc80..7781521 100644 --- a/gn/packages/python.scm +++ b/gn/packages/python.scm @@ -357,32 +357,89 @@ project)") (description #f) (license #f))) -(define-public python2-piddle +(define-public python2-pil-1.1.6 (package - (name "python2-piddle") - (version "1.0.15") + (name "python2-pil") + (version "1.1.6") (source - (origin - (method url-fetch) - (uri (string-append - ;; http://sourceforge.net/projects/numpy/files/Old%20Numarray/1.5.2/numarray-1.5.2.tar.gz/download - "mirror://sourceforge/piddle/piddle-" version ".zip" - )) - ;; (file-name (string-append name "-" version ".zip")) - (sha256 - (base32 - "0jaxfsrcgqb5cf2wznxnpdws5khlrdixmg85lrhq2zl9cy6dfdya")))) - (native-inputs - `(("unzip" ,unzip))) - + (origin + (method url-fetch) + (uri (string-append + "http://effbot.org/downloads/Imaging-" + version ".tar.gz")) + (sha256 + (base32 + "141zidl3s9v4vfi3nsbg42iq1lc2a932gprqr1kij5hrnn53bmvx")) + (modules '((guix build utils))) + (snippet + ;; Adapt to newer freetype. As the package is unmaintained upstream, + ;; there is no use in creating a patch and reporting it. + '(substitute* "_imagingft.c" + (("freetype/") + "freetype2/"))))) (build-system python-build-system) - ;; (native-inputs - ;; `(("python-setuptools" ,python-setuptools))) + (inputs + `(("freetype" ,freetype) + ("libjpeg" ,libjpeg) + ("libtiff" ,libtiff) + ("python-setuptools" ,python-setuptools) + ("zlib" ,zlib))) (arguments + ;; Only the fork python-pillow works with Python 3. `(#:python ,python-2 - #:tests? #f - )) ; no 'setup.py test' really! - (home-page "http://www.numpy.org/") + #:tests? #f ; no check target + #:phases + (alist-cons-before + 'build 'configure + ;; According to README and setup.py, manual configuration is + ;; the preferred way of "searching" for inputs. + ;; lcms is not found, TCL_ROOT refers to the unavailable tkinter. + (lambda* (#:key inputs #:allow-other-keys) + (let ((jpeg (assoc-ref inputs "libjpeg")) + (zlib (assoc-ref inputs "zlib")) + (tiff (assoc-ref inputs "libtiff")) + (freetype (assoc-ref inputs "freetype"))) + (substitute* "setup.py" + (("JPEG_ROOT = None") + (string-append "JPEG_ROOT = libinclude(\"" jpeg "\")")) + (("ZLIB_ROOT = None") + (string-append "ZLIB_ROOT = libinclude(\"" zlib "\")")) + (("TIFF_ROOT = None") + (string-append "TIFF_ROOT = libinclude(\"" tiff "\")")) + (("FREETYPE_ROOT = None") + (string-append "FREETYPE_ROOT = libinclude(\"" + freetype "\")"))))) + %standard-phases))) + (home-page "http://www.pythonware.com/products/pil/") + (synopsis "Python Imaging Library") + (description "The Python Imaging Library (PIL) adds image processing +capabilities to the Python interpreter.") + (license (license:x11-style + "file://README" + "See 'README' in the distribution.")))) + +(define-public python2-piddle-gn + (package + (name "python2-piddle") + (version "1.0.15-gn") + (source (origin + (method url-fetch) + (uri (string-append + "http://files.genenetwork.org/software/contrib/piddle-" +version ".tgz")) + (sha256 + (base32 + "05gjnn31v7p0kh58qixrpcizcxqf3b7zv4a5kk8nsmqwgxh0c6gq")))) + + (build-system python-build-system) + (native-inputs + `(("python2-setuptools" ,python2-setuptools))) + (arguments + `( + #:python ,python-2 + #:tests? #f ; no 'setup.py test' really! + )) + (home-page #f) (synopsis "Canvas drawing library for python2 (old!)") (description #f) (license #f))) diff --git a/gn/packages/ruby.scm b/gn/packages/ruby.scm index 0e1fa88..bebc678 100644 --- a/gn/packages/ruby.scm +++ b/gn/packages/ruby.scm @@ -16,7 +16,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 ruby) +(define-module (gn packages ruby) #:use-module ((guix licenses) #:prefix license:) #:use-module (gnu packages) #:use-module (gnu packages compression) diff --git a/gn/packages/statistics.scm b/gn/packages/statistics.scm index 065826e..2c9ebda 100644 --- a/gn/packages/statistics.scm +++ b/gn/packages/statistics.scm @@ -18,6 +18,7 @@ #:use-module (gnu packages compression) #:use-module (gnu packages cpio) #:use-module (gnu packages file) + #:use-module (gnu packages gcc) #:use-module (gnu packages java) #:use-module (gnu packages linux) #:use-module (gnu packages machine-learning) @@ -39,6 +40,227 @@ #:use-module (gnu packages bootstrap) #:use-module (srfi srfi-1)) +(define-public r-acepack +(package + (name "r-acepack") + (version "1.3-3.3") + (source + (origin + (method url-fetch) + (uri (cran-uri "acepack" version)) + (sha256 + (base32 + "13ry3vyys12iplb14jfhmkrl9g5fxg3iijiggq4s4zb5m5436b1y")))) + (build-system r-build-system) + (inputs + `(("gfortran" ,gfortran))) + (home-page + "http://cran.r-project.org/web/packages/acepack") + (synopsis + "ace() and avas() for selecting regression transformations") + (description + "ACE and AVAS methods for choosing regression transformations.") + (license license:x11))) + +(define-public r-latticeextra +(package + (name "r-latticeextra") + (version "0.6-28") + (source + (origin + (method url-fetch) + (uri (cran-uri "latticeExtra" version)) + (sha256 + (base32 + "1hkyqsa7klk5glj9y1hg3rxr5qilqw8h0017zc4c3nps7lr9a1kq")))) + (properties `((upstream-name . "latticeExtra"))) + (build-system r-build-system) + (propagated-inputs + `( ;;("r-grdevices" ,r-grdevices) + ("r-gridbase" ,r-gridbase) + ("r-lattice" ,r-lattice) + ("r-rcolorbrewer" ,r-rcolorbrewer) + )) + (home-page + "http://latticeextra.r-forge.r-project.org/") + (synopsis + "Extra Graphical Utilities Based on Lattice") + (description + "Building on the infrastructure provided by the lattice package, this package provides several new high-level functions and methods, as well as additional utilities such as panel and axis annotation functions.") + (license license:gpl2+))) + +(define-public r-formula + (package + (name "r-formula") + (version "1.2-1") + (source + (origin + (method url-fetch) + (uri (cran-uri "Formula" version)) + (sha256 + (base32 + "02in5325zzrqbhlygx6s0dinj6ymw845q70y56frqacv25ayzcax")))) + (properties `((upstream-name . "Formula"))) + (build-system r-build-system) + (home-page + "http://cran.r-project.org/web/packages/Formula") + (synopsis "Extended Model Formulas") + (description + "Infrastructure for extended formulas with multiple parts on the right-hand side and/or multiple responses on the left-hand side.") + (license #f)) +) + +(define-public r-hmisc +(package + (name "r-hmisc") + (version "3.17-2") + (source + (origin + (method url-fetch) + (uri (cran-uri "Hmisc" version)) + (sha256 + (base32 + "110w5hbrl10isslqs0iq6w2ll0dafqyqznb50cdcallnlnvbvxrg")))) + (properties `((upstream-name . "Hmisc"))) + (build-system r-build-system) + (inputs + `(("gfortran" ,gfortran))) + (arguments + `(#:tests? #f)) ; no 'setup.py test' + (propagated-inputs + `(("r-acepack" ,r-acepack) + ; ("r-cluster" ,r-cluster) + ; ("r-foreign" ,r-foreign) + ("r-formula" ,r-formula) + ("r-ggplot2" ,r-ggplot2) + ; ("r-grid" ,r-grid) + ("r-gridextra" ,r-gridextra) + ("r-gtable" ,r-gtable) + ("r-lattice" ,r-lattice) + ("r-latticeextra" ,r-latticeextra) + ; ("r-methods" ,r-methods) + ; ("r-nnet" ,r-nnet) + ; ("r-rpart" ,r-rpart) + ; ("r-survival" ,r-survival))) + )) + (home-page + "http://biostat.mc.vanderbilt.edu/Hmisc") + (synopsis "Harrell Miscellaneous") + (description + "Contains many functions useful for data analysis, high-level graphics, utility operations, functions for computing sample size and power, importing and annotating datasets, imputing missing values, advanced table making, variable clustering, character string manipulation, conversion of R objects to LaTeX code, and recoding variables.") + (license license:gpl2+))) + +(define-public r-doparallel +(package + (name "r-doparallel") + (version "1.0.10") + (source + (origin + (method url-fetch) + (uri (cran-uri "doParallel" version)) + (sha256 + (base32 + "1mddx25l25pw9d0csnx2q203dbg5hbrhkr1f08kw0p02a1lln0kh")))) + (properties `((upstream-name . "doParallel"))) + (build-system r-build-system) + (propagated-inputs + `(("r-foreach" ,r-foreach) + ("r-iterators" ,r-iterators) + ;; ("r-parallel" ,r-parallel) + )) + (home-page + "http://cran.r-project.org/web/packages/doParallel") + (synopsis + "Foreach Parallel Adaptor for the 'parallel' Package") + (description + "Provides a parallel backend for the %dopar% function using the parallel package.") + (license license:gpl2+))) + +(define-public r-iterators +(package + (name "r-iterators") + (version "1.0.8") + (source + (origin + (method url-fetch) + (uri (cran-uri "iterators" version)) + (sha256 + (base32 + "1f057pabs7ss9h1n244can26qsi5n2k3salrdk0b0vkphlrs4kmf")))) + (build-system r-build-system) + ;; (propagated-inputs `(("r-utils" ,r-utils))) + (home-page + "http://cran.r-project.org/web/packages/iterators") + (synopsis "Provides Iterator Construct for R") + (description + "Support for iterators, which allow a programmer to traverse through all the elements of a vector, list, or other collection of data.") + (license #f))) + +(define-public r-foreach +(package + (name "r-foreach") + (version "1.4.3") + (source + (origin + (method url-fetch) + (uri (cran-uri "foreach" version)) + (sha256 + (base32 + "10aqsd3rxz03s1qdb6gsb1cj89mj4vmh491zfpin4skj1xvkzw0y")))) + (build-system r-build-system) + (propagated-inputs `(("r-iterators" ,r-iterators))) + (home-page + "http://cran.r-project.org/web/packages/foreach") + (synopsis + "Provides Foreach Looping Construct for R") + (description + "Support for the foreach looping construct. Foreach is an idiom that allows for iterating over elements in a collection, without the use of an explicit loop counter. This package in particular is intended to be used for its return value, rather than for its side effects. In that sense, it is similar to the standard lapply function, but doesn't require the evaluation of a function. Using foreach without side effects also facilitates executing the loop in parallel.") + (license #f)) +) + +(define-public r-fastcluster +(package + (name "r-fastcluster") + (version "1.1.16") + (source + (origin + (method url-fetch) + (uri (cran-uri "fastcluster" version)) + (sha256 + (base32 + "0x2prrsnqi5iqx23ki6y2agndjq8058ph6s703i4avrqi1q1w1q8")))) + (build-system r-build-system) + (home-page + "http://danifold.net/fastcluster.html") + (synopsis + "Fast Hierarchical Clustering Routines for R and Python") + (description + "This is a two-in-one package which provides interfaces to both R and Python. It implements fast hierarchical, agglomerative clustering routines. Part of the functionality is designed as drop-in replacement for existing routines: \"linkage\" in the SciPy package \"scipy.cluster.hierarchy\", \"hclust\" in R's \"stats\" package, and the \"flashClust\" package. It provides the same functionality with the benefit of a much faster implementation. Moreover, there are memory-saving routines for clustering of vector data, which go beyond what the existing packages provide. For information on how to install the Python files, see the file INSTALL in the source distribution.") + (license #f))) + +(define-public r-dynamictreecut +(package + (name "r-dynamictreecut") + (version "1.62") + (source + (origin + (method url-fetch) + (uri (cran-uri "dynamicTreeCut" version)) + (sha256 + (base32 + "1y11gg6k32wpsyb10kdv176ivczx2jlizs1xsrjrs6iwbncwzrkp")))) + (properties + `((upstream-name . "dynamicTreeCut"))) + (build-system r-build-system) + ; (propagated-inputs `(("r-stats" ,r-stats))) + (home-page + "http://www.genetics.ucla.edu/labs/horvath/CoexpressionNetwork/BranchCutting/") + (synopsis + "Methods for detection of clusters in hierarchical clustering dendrograms.") + (description + "Contains methods for detection of clusters in hierarchical clustering dendrograms.") + (license license:gpl2+))) + (define-public r-rcppeigen (package (name "r-rcppeigen") @@ -148,3 +370,43 @@ "R/lmmlite") (home-page "https://github.com/kbroman/") (license license:asl2.0))) + +(define-public pylmm-gn2 + (let ((commit "3c6d1cac8")) + (package + (name "pylmm-gn2") + (version (string-append "1.0-" commit )) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/genenetwork/pylmm.git") + (commit commit))) + (file-name (string-append name "-" commit)) + (sha256 + (base32 + "0wryaadb36i275p9d2i1kzflahvbl9kj5wlk8jlbvjij8gpqg964")))) + (build-system python-build-system) + (inputs `( + ("python2-setuptools" ,python2-setuptools) + ("python2-scipy" ,python2-scipy) + ("python2-numpy" ,python2-numpy) + )) + (arguments + `(#:python ,python-2 + #:tests? #f ; no 'setup.py test' + #:phases + (modify-phases %standard-phases + (add-before + 'build 'change-paths + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (substitute* "scripts/pylmm_redis" + (("/usr/bin/python") (which "python")) + (("\\$PACKAGEDIR") (string-append out "/lib/python2.7/site-packages"))) + )))))) + + (home-page "http://genenetwork.org/") + (synopsis "LMM resolver") + (description "Fast and lightweight linear mixed-model (LMM) solver +for use in genome-wide association studies (GWAS).") + (license license:agpl3+)))) diff --git a/htslib-add-cram_to_bam.patch b/htslib-add-cram_to_bam.patch new file mode 100644 index 0000000..c90f7aa --- /dev/null +++ b/htslib-add-cram_to_bam.patch @@ -0,0 +1,27 @@ +This patch adds the cram_to_bam function to the public interface of htslib, +because it is used by code in Sambamba. + +by Roel Janssen <roel@gnu.org> +--- a/cram/cram_decode.c 2015-12-15 17:34:33.000000000 +0100 ++++ b/cram/cram_decode.c 2016-02-24 11:16:10.491808702 +0100 +@@ -2730,7 +2730,7 @@ + * Returns the used size of the bam record on success + * -1 on failure. + */ +-static int cram_to_bam(SAM_hdr *bfd, cram_fd *fd, cram_slice *s, ++int cram_to_bam(SAM_hdr *bfd, cram_fd *fd, cram_slice *s, + cram_record *cr, int rec, bam_seq_t **bam) { + int bam_idx, rg_len; + char name_a[1024], *name; +diff -Naur htslib-1.3/cram/cram_decode.h htslib-1.3-patched/cram/cram_decode.h +--- a/cram/cram_decode.h 2015-12-15 17:34:33.000000000 +0100 ++++ b/cram/cram_decode.h 2016-02-24 11:15:04.556809864 +0100 +@@ -104,6 +104,8 @@ + int cram_decode_slice(cram_fd *fd, cram_container *c, cram_slice *s, + SAM_hdr *hdr); + ++int cram_to_bam(SAM_hdr *bfd, cram_fd *fd, cram_slice *s, ++ cram_record *cr, int rec, bam_seq_t **bam); + + #ifdef __cplusplus + } |