|
- ;; 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 cargo)
- #:use-module (guix build-system gnu)
- #:use-module (guix build-system python)
- #:use-module (guix build-system trivial)
- #:use-module (guix graph)
- #:use-module (guix scripts graph)
- #:use-module (guix store)
- #:use-module (gnu packages)
- #:use-module (gnu packages base)
- #:use-module (gnu packages bioconductor)
- #:use-module (gnu packages bioinformatics)
- #:use-module (gnu packages bootstrap)
- #:use-module (gnu packages check)
- #:use-module (gnu packages cran)
- #:use-module (gnu packages crates-io)
- #:use-module (gnu packages compression)
- #:use-module (gnu packages databases)
- #:use-module (gnu packages ghostscript)
- #:use-module (gnu packages graphviz)
- #:use-module (gnu packages python)
- #:use-module (gnu packages python-check)
- #:use-module (gnu packages python-crypto)
- #:use-module (gnu packages python-science)
- #:use-module (gnu packages python-web)
- #:use-module (gnu packages python-xyz)
- #:use-module (gnu packages rdf)
- #:use-module (gnu packages rust)
- #:use-module (gnu packages scheme)
- #:use-module (gnu packages statistics)
- #:use-module (gnu packages version-control)
- #:use-module (gnu packages vim)
- #:use-module (gnu packages web)
- #:use-module (gnu packages wget)
- #:use-module (gnu packages xml)
- #:use-module (past packages python)
- #:use-module (gn packages bioinformatics)
- #:use-module (gn packages twint)
- #:use-module (gn packages databases)
- #:use-module (gn packages elixir)
- #:use-module (gn packages gemma)
- #:use-module (gn packages javascript)
- #:use-module (gn packages phewas)
- #:use-module (gn packages python)
- #:use-module (gn packages python24)
- #:use-module (gn packages statistics)
- #:use-module (gn packages web)
- #:use-module (srfi srfi-1))
-
-
- (define-public python2-qtlreaper
- (let ((commit "442c217b90393380a8634ff8636b44992f5c53dd"))
- (package
- (name "python2-qtlreaper")
- (version (string-append "1.11-gn2-" (string-take commit 7) ))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- ;; (url "https://github.com/genenetwork/genenetwork2.git")
- (url "https://github.com/pjotrp/QTLreaper.git")
- (commit commit)))
- (file-name (string-append name "-" (string-take commit 7)))
- (sha256
- (base32
- "1rrbm1ap2zzyjxmrs9aa1d18sgiba5dhj1fmkl7wmab06jv3j1hm"))))
- (build-system python-build-system)
- (arguments
- `(#:python ,python-2
- #:tests? #f)) ; no 'setup.py test' really!
- (home-page "http://qtlreaper.sourceforge.net/")
- (synopsis "Scan expression data for QTLs")
- (description
- "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 python24-qtlreaper
- (let ((commit "442c217b90393380a8634ff8636b44992f5c53dd"))
- (package
- (name "python24-qtlreaper")
- (version (git-version "1.11" "gn1" commit))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- ;; (url "https://github.com/genenetwork/genenetwork2.git")
- (url "https://github.com/pjotrp/QTLreaper.git")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "1rrbm1ap2zzyjxmrs9aa1d18sgiba5dhj1fmkl7wmab06jv3j1hm"))))
- (build-system python-build-system)
- (arguments
- `(#:python ,python-2.4
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'make-max-markername-size-larger
- (lambda _
- (substitute* "Src/dataset.c"
- (("512") "2048"))
- #t))
- (replace 'check
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (add-installed-pythonpath inputs outputs)
- (invoke "python" "test/runtest.py"))))))
- (native-inputs
- `(("python24-setuptools" ,python24-setuptools)))
- (home-page "http://qtlreaper.sourceforge.net/")
- (synopsis "Scan expression data for QTLs")
- (description
- "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+))))
-
- ;; Reintroduced python2-gunicorn because we are running GN with python2
- ;; right now. Please keep it until we migrate to Python3 fully!
-
- (define-public python-gunicorn-gn
- (package
- (name "python-gunicorn-gn")
- (version "19.9.0")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "gunicorn" version))
- (sha256
- (base32
- "1wzlf4xmn6qjirh5w81l6i6kqjnab1n1qqkh7zsj1yb6gh4n49ps"))))
- (build-system python-build-system)
- (inputs
- `(("python-mock" ,python-mock)))
- (arguments
- '(#:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'loosen-verion-restrictions
- (lambda _
- (substitute* "requirements_test.txt"
- (("coverage.*") "coverage\n")
- (("pytest.*") "pytest\n")
- (("pytest-cov.*") "pytest-cov\n"))
- #t)))))
- (native-inputs
- `(("python-coverage" ,python-coverage)
- ("python-pytest" ,python-pytest)
- ("python-pytest-cov" ,python-pytest-cov)))
- (home-page "https://gunicorn.org")
- (synopsis "WSGI HTTP Server for UNIX")
- (description "Gunicorn 'Green Unicorn' is a Python WSGI HTTP Server for
- UNIX. It's a pre-fork worker model ported from Ruby's Unicorn project. The
- Gunicorn server is broadly compatible with various web frameworks, simply
- implemented, light on server resource usage, and fairly speedy.")
- (license license:expat)))
-
-
- (define-public python2-gunicorn-gn
- (package-with-python2 python-gunicorn-gn))
-
-
- (define-public rust-qtlreaper
- (let ((commit "2e7fed6d45b0b602d80fa2a55835f96ef1cba9e3")
- (revision "1"))
- (package
- (name "rust-qtlreaper")
- (version "0.1.4")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/chfi/rust-qtlreaper.git")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "0h70aalsplmc6xn1w7ha102n3bsi3gqkbnbrjvjm2za37c07gv0g"))))
- (build-system cargo-build-system)
- (arguments
- `(#:cargo-inputs
- (("rust-rand" ,rust-rand-0.6)
- ("rust-structopt" ,rust-structopt-0.2)
- ("rust-rayon" ,rust-rayon-1)
- ("rust-serde" ,rust-serde-1)
- ("rust-serde-json" ,rust-serde-json-1)
- ("rust-ndarray" ,rust-ndarray-0.12))
- #:phases
- (modify-phases %standard-phases
- ;; Test results vary based on the machine running them.
- (replace 'check
- (lambda _
- (or (assoc-ref %standard-phases 'check)
- (begin
- (substitute* "src/geneobject.rs"
- ;; array![Genotype::Unk, Genotype::Unk, Genotype::Pat]
- (("0.3421367343627405") "0.3421367343627406")
- ;; array![Genotype::Unk, Genotype::Unk, Genotype::Unk]
- (("-0.3223330030526561") "-0.32233300305265566"))
- (assoc-ref %standard-phases 'check)))
- #t)))))
- (home-page "https://github.com/chfi/rust-qtlreaper")
- (synopsis "Reimplementation of genenetwork/QTLReaper in Rust")
- (description "Reimplementation of genenetwork/QTLReaper in Rust")
- (license #f))))
-
- (define-public gfautil
- (package
- (name "gfautil")
- (version "0.1.0")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "gfautil" version))
- (file-name
- (string-append name "-" version ".tar.gz"))
- (sha256
- (base32
- "0cgiis9v1nd4m7zxvgsz8jf8ijv4d8fa5wb7cpnjshksb8z7xh69"))))
- (build-system cargo-build-system)
- (arguments
- `(#:rust ,rust-1.42
- #:cargo-inputs
- (("rust-bstr" ,rust-bstr-0.2)
- ("rust-clap" ,rust-clap-2)
- ("rust-gfa" ,rust-gfa-0.6)
- ("rust-handlegraph" ,rust-handlegraph-0.3)
- ("rust-rayon" ,rust-rayon-1)
- ("rust-serde" ,rust-serde-1)
- ("rust-structopt" ,rust-structopt-0.3))))
- (home-page "https://github.com/chfi/rs-gfa-utils")
- (synopsis "Command line tools for working with GFA files")
- (description
- "This package provides command line tools for working with @acronym{GFA,
- Graphical Fragment Assembly} files and related formats.")
- (license license:expat)))
-
- (define-public genenetwork2
- (let ((commit "1538ffd33af19e6ac922b4ee85fe701408968dfd"))
- (package
- (name "genenetwork2")
- (version (string-append "2.11-guix-" (string-take commit 7) ))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://pjotrp@gitlab.com/genenetwork/gn2_diet.git")
- (commit commit)))
- (file-name (string-append name "-" version))
- (sha256
- (base32
- "0ji929xgzypyhchcfy9xa1sz04w322ibs2khc8s3qiddxjqdglrz"))))
- (propagated-inputs
- `(;; propagated for development purposes
- ("python" ,python-2) ;; probably superfluous
- ("coreutils" ,coreutils)
- ("git" ,git)
- ("which" ,which)
- ("grep" ,grep)
- ("r" ,r)
- ("r-ctl" ,r-ctl)
- ; ("r-phewas" ,r-phewas)
- ("r-qtl" ,r-qtl)
- ("r-wgcna" ,r-wgcna)
- ("redis" ,redis)
- ("mariadb" ,mariadb)
- ("gemma" ,gemma-gn2)
- ("gemma-wrapper" ,gemma-wrapper)
- ; ("genenetwork2-files-small" ,genenetwork2-files-small)
- ("plink-ng-gn" ,plink-ng-gn)
- ; ("pylmm-gn2" ,pylmm-gn2)
- ("racket-minimal" ,racket-minimal)
- ("rust-qtlreaper" ,rust-qtlreaper)
- ("nginx" ,nginx)
- ("python-twint" ,python-twint)
- ("python2-coverage" ,python2-coverage)
- ("python2-flask" ,python2-flask)
- ("python2-gunicorn-gn" ,python2-gunicorn-gn)
- ("python2-pillow" ,python2-pillow) ;; - for later!
- ("python2-pil1" ,python2-pil1-gn)
- ("python2-piddle-gn" ,python2-piddle-gn)
- ("python2-cssselect" ,python2-cssselect)
- ("python2-elasticsearch" ,python2-elasticsearch)
- ; ("python2-htmlgen" ,python2-htmlgen)
- ("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)
- ("python2-lxml" ,python2-lxml)
- ("python2-mechanize" ,python2-mechanize)
- ("python2-mock" ,python2-mock)
- ("python2-mysqlclient" ,python2-mysqlclient)
- ("python2-nose" ,python-nose2)
- ("python2-numarray" ,python2-numarray)
- ("python2-numpy" ,python2-numpy)
- ("python2-pandas" ,python2-pandas)
- ("python2-parallel" ,python2-parallel)
- ("python2-parameterized" ,python2-parameterized)
- ("python2-passlib" ,python2-passlib)
- ("python2-redis" ,python2-redis)
- ("python2-requests" ,python2-requests)
- ("python2-rpy2" ,python2-rpy2)
- ("python2-simplejson" ,python2-simplejson)
- ("python2-pyyaml" ,python2-pyyaml)
- ("python-unittest2" ,python-unittest2)
- ("python2-xlsxwriter" ,python2-xlsxwriter)
- ("python2-qtlreaper" ,python2-qtlreaper)
- ;; All the external js dependencies
- ("javascript-twitter-post-fetcher" ,javascript-twitter-post-fetcher)
- ("javascript-cytoscape" ,javascript-cytoscape)
- ("javascript-panzoom" ,javascript-cytoscape-panzoom)
- ("javascript-qtip" ,javascript-cytoscape-qtip)
- ("javascript-chroma" ,javascript-chroma)
- ("javascript-d3-tip" ,javascript-d3-tip)
- ("javascript-jscolor" ,javascript-jscolor)
- ("javascript-colorbox" ,javascript-colorbox)
- ("javascript-jszip" ,javascript-jszip)
- ("js-jstat" ,js-jstat)
- ("js-md5" ,js-md5)
- ("js-parsley" ,js-parsley)
- ("javascript-plotly" ,javascript-plotly)
- ("javascript-typeahead" ,javascript-typeahead)
- ("js-underscore" ,js-underscore)
- ("js-smart-time-ago" ,js-smart-time-ago)
- ("javascript-nouislider" ,javascript-nouislider)
- ("javascript-purescript-genome-browser" ,javascript-purescript-genome-browser)
- ("javascript-ckeditor" ,javascript-ckeditor)
- ("javascript-datatables" ,javascript-datatables)
- ("javascript-datatables-scroller" ,javascript-datatables-scroller)
- ("javascript-datatables-buttons" ,javascript-datatables-buttons)
- ("javascript-datatables-buttons-bootstrap" ,javascript-datatables-buttons-bootstrap)
- ("javascript-datatables-plugins" ,javascript-datatables-plugins)
- ("javascript-datatables-col-reorder" ,javascript-datatables-col-reorder)
- ("javascript-datatables-col-resize" ,javascript-datatables-col-resize)
- ("javascript-datatables-buttons-styles" ,javascript-datatables-buttons-styles)
- ("javascript-shapiro-wilk" ,javascript-shapiro-wilk)
- ("javascript-underscore-string" ,javascript-underscore-string)
- ("javascript-qtip2" ,javascript-qtip2)
- ("javascript-d3js" ,javascript-d3js)
- ("javascript-nvd3" ,javascript-nvd3)
- ("javascript-bootstrap" ,javascript-bootstrap)
- ("javascript-jquery" ,javascript-jquery)
- ("javascript-zxcvbn-async" ,javascript-zxcvbn-async)
- ("javascript-jquery-ui" ,javascript-jquery-ui)
- ("javascript-jquery-cookie" ,javascript-jquery-cookie)
- ))
- (inputs
- `(("javascript-colorbox" ,(package-source javascript-colorbox))))
- (build-system python-build-system)
- (arguments
- `(#:python ,python-2
- #:phases
- (modify-phases %standard-phases
- (delete 'reset-gzip-timestamps)
- (add-after 'unpack 'fix-paths-scripts
- (lambda _
- (substitute* "bin/genenetwork2"
- (("/usr/bin/env") (which "env"))
- (("python ") (string-append (which "python2") " "))
- (("readlink") (which "readlink"))
- (("dirname") (which "dirname"))
- (("basename") (which "basename"))
- (("cat") (which "cat"))
- (("echo") (which "echo"))
- (("redis-server") (which "redis-server"))
- (("git") (which "git"))
- (("grep") (which "grep"))
- (("rm") (which "rm"))
- (("which") (which "which")) ; three whiches in a row!
- )
- #t))
- (add-after 'unpack 'patch-javascript
- (lambda* (#:key inputs #:allow-other-keys)
- (let ((colorbox (assoc-ref inputs "javascript-colorbox"))
- (gn2 "/share/genenetwork2/javascript/"))
- (delete-file-recursively "wqflask/wqflask/static/packages/colorbox")
- (copy-recursively colorbox "wqflask/wqflask/static/packages/colorbox")
- #t)))
- (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 "plink-ng-gn") "/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+))))
-
- (define-public python3-genenetwork2
- (let ((commit "84cbf35adbb15c79638372d108308edb05f12683"))
- (package
- (inherit genenetwork2)
- (name "python3-genenetwork2")
- (version (string-append "3.11-guix-" (string-take commit 7) ))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/genenetwork/genenetwork2.git")
- (commit commit)))
- (file-name (string-append name "-" version))
- (sha256
- (base32
- "1402g129ghfh0xwfxjj1i7gbib2yl9rahf55caj7b1psy24ys87x"))))
- (native-inputs
- `(("graphviz" ,graphviz)))
- (propagated-inputs
- (let ((inputs (package-propagated-inputs genenetwork2)))
- `(,@(fold
- alist-delete inputs
- (map car
- (filter (lambda (x)
- (let ((name (car x)))
- (or (string-prefix? "python2" name)
- (string-prefix? "python-2" name)
- (string=? "python" name))))
- inputs)))
- ("python" ,python-wrapper)
- ("python-pillow" ,python-pillow)
- ("python-coverage" ,python-coverage)
- ("python-flask" ,python-flask)
- ("gunicorn" ,gunicorn)
- ("python-cssselect" ,python-cssselect)
- ("python-elasticsearch" ,python-elasticsearch)
- ("python-htmlgen" ,python-htmlgen)
- ("python-jinja2" ,python-jinja2)
- ("python-sqlalchemy" ,python-sqlalchemy)
- ("python-flask-sqlalchemy" ,python-flask-sqlalchemy)
- ("python-setuptools" ,python-setuptools)
- ("python-scipy" ,python-scipy)
- ("python-lxml" ,python-lxml)
- ("python-mechanize" ,python-mechanize)
- ("python-mysqlclient" ,python-mysqlclient)
- ("python-mypy" ,python-mypy)
- ("python-numpy" ,python-numpy)
- ("python-pandas" ,python-pandas)
- ("python-parameterized" ,python-parameterized)
- ("python-passlib" ,python-passlib)
- ("python-redis" ,python-redis)
- ("python-requests" ,python-requests)
- ("python-simplejson" ,python-simplejson)
- ("python-pyyaml" ,python-pyyaml)
- ("python-markdown" ,python-markdown)
- ("python-rdflib" ,python-rdflib)
- ;; TODO: Get rid of Python R bindings
- ("python-rpy2" ,python-rpy2-2.9)
- ("python-beautifulsoup4" ,python-beautifulsoup4)
- ;; Disable for now. Build fails on Penguin2
- ;; ("python-flask-socketio" ,python-flask-socketio)
- ("python-xlsxwriter" ,python-xlsxwriter))))
- (arguments
- (let ((python (specification->package "python-wrapper"))
- (args (package-arguments genenetwork2)))
- (substitute-keyword-arguments args
- ((#:python _) python)
- ((#:phases phases)
- `(modify-phases ,phases
- (add-after 'unpack 'fix-paths-scripts
- (lambda _
- (substitute* "bin/genenetwork2"
- (("/usr/bin/env") (which "env"))
- (("python ") (string-append (which "python3") " "))
- (("readlink") (which "readlink"))
- (("dirname") (which "dirname"))
- (("basename") (which "basename"))
- (("cat") (which "cat"))
- (("echo") (which "echo"))
- (("redis-server") (which "redis-server"))
- (("git") (which "git"))
- (("grep") (which "grep"))
- (("rm") (which "rm"))
- (("which") (which "which")))
- #t))
- (add-after 'install 'generate-graph
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (call-with-output-file
- (string-append
- (assoc-ref outputs "out")
- "/lib/python3.8/site-packages"
- "/wqflask/dependency-graph.html")
- (lambda (port)
- (format
- port "~a"
- ,(call-with-output-string
- (lambda (p)
- (with-output-to-port p
- (lambda ()
- (run-with-store
- (open-connection)
- (export-graph
- (list this-package)
- p
- #:node-type %package-node-type
- #:backend %d3js-backend)))))))))))
- (add-after 'install 'generate-dag-svg-file
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let* ((output-dir
- (string-append
- (assoc-ref outputs "out")
- "/lib/python3.8/site-packages/wqflask/"))
- (dot-file
- (string-append
- output-dir
- "dependency-graph.dot"))
- (svg-file
- (string-append
- output-dir
- "dependency-graph.svg")))
- (begin
- (call-with-output-file
- dot-file
- (lambda (port)
- (format
- port "~a"
- ,(call-with-output-string
- (lambda (p)
- (with-output-to-port p
- (lambda ()
- (run-with-store
- (open-connection)
- (export-graph
- (list this-package)
- p
- #:node-type %package-node-type
- #:backend %graphviz-backend)))))))))
- (invoke "dot" "-Tsvg" "-o" svg-file dot-file)))))
- (add-after 'install 'generate-dependency-file
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (call-with-output-file
- (string-append
- (assoc-ref outputs "out")
- "/lib/python3.8/site-packages"
- "/wqflask/DEPENDENCIES.md")
- (lambda (port)
- (format
- port "
- #### System Inputs (generated from ~a package defined in ~a)
- |Name | Description |
- |-----|-------------|
- ~a
- "
- ,(package-name this-package)
- (string-append
- "[genenetwork.scm]"
- "(http://git.genenetwork.org/"
- "guix-bioinformatics/guix-bioinformatics"
- "/src/branch/master/gn/packages/"
- "genenetwork.scm)")
- ,(apply
- string-append
- (map
- (lambda (input)
- (let* ((pkg (cadr input))
- (name (package-name pkg))
- (version (package-version pkg))
- (home-page (package-home-page pkg))
- (description (package-synopsis pkg)))
- (string-append
- "| **[" name "](" home-page ")** v"
- version"| "
- description " |\n")))
- (package-propagated-inputs this-package))))))))))))))))
-
- ;; ./pre-inst-env guix download http://files.genenetwork.org/raw_database/db_webqtl_s.zip
- ;; 0sscjh0wml2lx0mb43vf4chg9gpbfi7abpjxb34n3kyny9ll557x
-
- (define-public genenetwork2-files-small
- (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+))))
-
-
-
- (define-public python-reaper
- (let ((commit "63391333a6619771277bfffa9bd9d33811fa0d28"))
- (package
- (name "python-reaper")
- (version (string-append "0.0.1-"
- (string-take commit 7)))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/fredmanglis/reaper.git")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "1rq2qn0vrqd8k676yy8drm0zxzkj065ywhxjl0j1n2r25zifay7r"))))
- (build-system python-build-system)
- (arguments
- `(#:tests? #f))
- (home-page "https://github.com/fredmanglis/reaper")
- (synopsis "Parser for .geno files")
- (description "Parser for .geno files. It replaces the Python2 library
- written in C")
- (license license:agpl3+))))
-
-
- (define-public genenetwork1
- (let ((commit "acf65ac9ae4be395c07c1629758f7408bf4eab5f") ; June 3, 2020
- (revision "2"))
- (package
- (name "genenetwork1")
- (version (git-version "0.0.0" revision commit))
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/genenetwork/genenetwork1.git")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "0xmmmjyvh80yd8b0cjrwpdmxl8k9zj5ly65r2g9aygx74njsp4fi"))))
- (build-system gnu-build-system)
- (native-inputs
- `(("ghostscript" ,ghostscript)
- ("graphviz" ,graphviz)
- ("python24" ,python-2.4)
- ("python-piddle" ,python24-piddle)
- ("wget" ,wget)))
- (arguments
- `(#:tests? #f ; no tests
- #:phases
- (modify-phases %standard-phases
- (delete 'configure)
- (delete 'build)
- (add-after 'patch-generated-file-shebangs 'patch-more-files
- (lambda* (#:key inputs #:allow-other-keys)
- (let ((piddle (assoc-ref inputs "python-piddle")))
- (substitute* "web/webqtl/networkGraph/networkGraphUtils.py"
- (("/usr/local/bin/neato") (which "neato"))
- (("/usr/local/bin/circo") (which "circo"))
- (("/usr/local/bin/twopi") (which "twopi"))
- (("/usr/local/bin/fdp") (which "fdp"))
- (("ps2pdf") (which "ps2pdf")))
- (substitute* "web/webqtl/maintainance/addRif.py"
- (("rm ") (string-append (which "rm") " "))
- (("wget ") (string-append (which "wget") " "))
- (("gunzip") (which "gunzip")))
- (substitute* "web/webqtl/misc/editHtmlPage.py"
- (("/bin/cp") (which "cp")))
- (substitute* "web/webqtl/geneWiki/AddGeneRIFPage.py"
- (("touch") (which "touch")))
- (substitute* '("web/webqtl/maintainance/addRif.py"
- "web/webqtl/networkGraph/networkGraphPage.py"
- "web/webqtl/utility/svg.py")
- (("/usr/bin/(env )?python") (which "python")))
- (substitute* "web/webqtl/base/webqtlConfigLocal.py"
- (("PythonPath.*")
- (string-append "PythonPath = '" (which "python") "'\n"))
- (("PIDDLE_FONT_PATH.*/lib")
- (string-append "PIDDLE_FONT_PATH = '" piddle "/lib"))))
- #t))
- (add-after 'patch-generated-file-shebangs 'changes-for-deployed-service
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out")))
- (substitute* "web/webqtl/base/webqtlConfigLocal.py"
- ;; Where GN1 is located: (GNROOT)
- (("/gnshare/gn") out)
- ;; Where the database is located: (sql_host)
- (("tux01") "localhost"))
- (substitute* '("web/webqtl/maintainance/QTL_Reaper_cal_lrs.py")
- (("128\\.169\\.5\\.59") "localhost"))
- ;; This directory (TMPDIR) is expected to be writable by apache.
- ;; /tmp is private inside the container.
- (symlink "/tmp" "web/tmp")
- ;; IMGDIR is expected to be writable.
- (symlink "/tmp" "web/image")
- (system "chmod 0777 web/tmp")
- ;; More writable locations:
- (substitute* (list "web/webqtl/collection/ExportSelectionDetailInfoPage.py"
- "web/webqtl/pairScan/DirectPlotPage.py"
- "web/webqtl/updateTrait/DataUpdatePage.py"
- "web/webqtl/utility/Plot.py")
- (("/gnshare/gn/web/debug_file.txt") "/tmp/debug_file.txt"))
- ;; We mount the genotypes folder (GENODIR) in the OS-config and
- ;; provide the symlink to that location from the package.
- ;; And now the directory is magically available!
- (symlink "/gnshare/gn/web/genotypes" "web/genotypes")
- (substitute* "web/webqtl/base/webqtlConfig.py"
- (("http://www.genenetwork.org") "http://gn1-test.genenetwork.org"))
- ;; Inside the gn1 container, there's some conflict when
- ;; importing the user module, therefore, as a hack, rename
- ;; user to useralt
- (mkdir "web/webqtl/useralt")
- (copy-recursively "web/webqtl/user" "web/webqtl/useralt")
- (substitute* '("web/webqtl/main.py")
- (("from user import") "from useralt import"))
- #t)))
- (add-after 'unpack 'use-local-links
- (lambda _
- (substitute* '("web/javascript/menu_items.js"
- "web/webqtl/maintainance/updateMenuJS.py")
- (("http://(www|gn1).genenetwork.org") ""))
-
- ;; Move this file out of the way while patching files.
- (rename-file "web/infoshare/manager/MDB-Free/index.html"
- "web/infoshare/manager/MDB-Free/index.htm")
- (substitute* (cons*
- "web/webqtl/base/indexBody.py"
- "web/webqtl/submitTrait/BatchSubmitPage.py"
- (find-files "web" "\\.html"))
- ((".*base href.*") "")
- (("(HREF|href)=\\\"http://(www.)?genenetwork.org")
- "href=\""))
- ;; Move this file back to its original location.
- (rename-file "web/infoshare/manager/MDB-Free/index.htm"
- "web/infoshare/manager/MDB-Free/index.html")
-
- (substitute* (cons*
- "web/humanCross.html"
- "web/webqtl/base/indexBody.py"
- "web/whats_new.html"
- (find-files "web/dbdoc" "\\.html"))
- (("src=\\\"http://www.genenetwork.org") "src=\""))
- #t))
- (replace 'install
- (lambda* (#:key outputs #:allow-other-keys)
- (copy-recursively "." (assoc-ref outputs "out"))
- #t)))))
- (home-page "http://www.genenetwork.org/webqtl/main.py")
- (synopsis
- "Combined database and data analysis software resource for systems genetics")
- (description "GeneNetwork is a group of linked data sets and tools used to
- study complex networks of genes, molecules, and higher order gene function and
- phenotypes. GeneNetwork combines more than 25 years of legacy data generated by
- hundreds of scientists together with sequence data (SNPs) and massive
- transcriptome data sets (expression genetic or eQTL data sets). The
- @dfn{quantitative trait locus} (QTL) mapping module that is built into GN is
- optimized for fast on-line analysis of traits that are controlled by
- combinations of gene
- variants and environmental factors. GeneNetwork can be used to study humans,
- mice (BXD, AXB, LXS, etc.), rats (HXB), Drosophila, and plant species (barley
- and Arabidopsis). Most of these population data sets are linked with dense
- genetic maps (genotypes) that can be used to locate the genetic modifiers that
- cause differences in expression and phenotypes, including disease susceptibility.")
- (license license:agpl3+))))
|