;; Bioinformatics module (define-module (gn packages bioinformatics) #: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 graphviz) #:use-module (gnu packages java) #:use-module (gnu packages linux) #: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 ruby) #: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 python) #: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 r-wgcna (package (name "r-wgcna") (version "1.48") (source (origin (method url-fetch) (uri (cran-uri "WGCNA" version)) (sha256 (base32 "18yl2v3s279saq318vd5hlwnqfm89rxmjjji778d2d26vviaf6bn")))) (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))) (home-page "http://www.genetics.ucla.edu/labs/horvath/CoexpressionNetwork/Rpackages/WGCNA/") (synopsis "Weighted Correlation Network Analysis") (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+))) (define-public qtlreaper (package (name "qtlreaper") (version "1.1.1") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/qtlreaper/qtlreaper-" version ".tar.gz" ;; "http://downloads.sourceforge.net/project/qtlreaper/qtlreaper/1.1.1/qtlreaper-1.1.1.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fqtlreaper%2Ffiles%2Flatest%2Fdownload&ts=1358975786&use_mirror=iweb")) )) (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 "0rbf030940nbbbkggdq2dxiy3c0jv8l4y3vvyfxhqimgj0qv3l1x")))) (build-system python-build-system) ;; (native-inputs ;; `(("python-setuptools" ,python-setuptools))) (arguments `(#:python ,python-2 #:tests? #f)) ; no 'setup.py test' (home-page "http://qtlreaper.sourceforge.net/") (synopsis "Tool for scanning expression data for QTLs") (description "It is essentially the batch-oriented version of WebQTL. It requires, as input, expression data from members of a set of recombinant inbred lines and genotype information for the same lines. It searches for an association between each expression trait and all genotypes and evaluates that association by a permutation 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))) (define-public plink2 (package (name "plink2") (version "1.90b3") (source (origin (method url-fetch) ;; https://github.com/chrchang/plink-ng/archive/v1.90b3.tar.gz (uri (string-append "https://github.com/chrchang/plink-ng/archive/v" version ".tar.gz")) (sha256 (base32 "03fzib1al5qkr9vxv63wxmv6y2pfb1rmir0h8jpi72r87hczqjig")) (patches (list (search-patch "plink-ng-Makefile-zlib.patch"))))) (build-system gnu-build-system) (arguments '(#:tests? #t ;no "check" target #:make-flags (list (string-append "LIB_LAPACK=" (assoc-ref %build-inputs "lapack") "/lib/liblapack.so") "WITH_LAPACK=1" "FORCE_DYNAMIC=1" ;; disable phoning home "WITH_WEBCHECK=") #:phases (modify-phases %standard-phases (delete 'configure) (replace 'build (lambda _ (system* "make" "-f" "Makefile.std") )) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let ((bin (string-append (assoc-ref outputs "out") "/bin/"))) (install-file "plink" bin) #t)))))) (inputs `(("zlib" ,zlib) ("lapack" ,lapack))) (native-inputs `(("unzip" ,unzip))) (home-page "https://www.cog-genomics.org/plink2") (synopsis "Whole genome association analysis toolset") (description "PLINK is a whole genome association analysis toolset, designed to perform a range of basic, large-scale analyses in a computationally efficient manner. The focus of PLINK is purely on analysis of genotype/phenotype data, so there is no support for steps prior to this (e.g. study design and planning, generating genotype or CNV calls from raw data). Through integration with gPLINK and Haploview, there is some support for the subsequent visualization, annotation and storage of results.") ;; Code is released under GPLv2, except for fisher.h, which is under ;; LGPLv2.1+ (license (list license:gpl2 license:lgpl2.1+)))) (define-public gemma (let ((commit "2de4bfab3")) (package (name "gemma") (version (string-append "0.9.5-" commit )) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/genenetwork/GEMMA.git") (commit commit))) (file-name (string-append name "-" commit)) (sha256 (base32 "1drffdgwbzgiw9sf55ghl3zjv58f8i9kfz0zys5mp6n06syp4ira")))) (inputs `( ("gsl" ,gsl) ("lapack" ,lapack) ("zlib" ,zlib) )) (build-system gnu-build-system) (arguments `(#:make-flags '(" FORCE_DYNAMIC=1") #:phases (modify-phases %standard-phases (delete 'configure) (add-before 'build 'bin-mkdir (lambda _ (mkdir-p "bin") )) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) (install-file "bin/gemma" (string-append out "/bin")))))) #:tests? #f)) (home-page "") (synopsis "Tool for genome-wide efficient mixed model association") (description "GEMMA is the software implementing the Genome-wide Efficient Mixed Model Association algorithm for a standard linear 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)) (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 (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)) (sha256 (base32 "09hvy9mf4dnmkb8qg49viffzrxk53m2kr4r955m84dxaa5pdrjhd")))) (propagated-inputs `( ("python" ,python-2) ;; probably superfluous ("r" ,r) )) (inputs `( ("mysql" ,mysql) ("gemma" ,gemma) ("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) ("python-xlsxwriter" ,python-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+))))