diff options
Diffstat (limited to 'gn/packages/bioinformatics.scm')
-rw-r--r-- | gn/packages/bioinformatics.scm | 419 |
1 files changed, 137 insertions, 282 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 |