aboutsummaryrefslogtreecommitdiff
path: root/gn
diff options
context:
space:
mode:
Diffstat (limited to 'gn')
-rw-r--r--gn/packages/bioinformatics.scm317
-rw-r--r--gn/packages/bnw.scm140
-rw-r--r--gn/packages/cran.scm29
-rw-r--r--gn/packages/cwl.scm77
-rw-r--r--gn/packages/graphviz.scm9
-rw-r--r--gn/packages/javascript.scm24
-rw-r--r--gn/packages/julia.scm198
-rw-r--r--gn/packages/jupyterhub.scm1
-rw-r--r--gn/packages/maths.scm1
-rw-r--r--gn/packages/python.scm193
-rw-r--r--gn/packages/ratspub.scm213
-rw-r--r--gn/services/archive-pubmed.service13
-rw-r--r--gn/services/archive-pubmed.timer9
-rw-r--r--gn/services/bnw-README4
-rw-r--r--gn/services/bnw-container.scm4
-rw-r--r--gn/services/bnw.service2
-rw-r--r--gn/services/genenetwork.scm26
17 files changed, 929 insertions, 331 deletions
diff --git a/gn/packages/bioinformatics.scm b/gn/packages/bioinformatics.scm
index 8897752..056bc3f 100644
--- a/gn/packages/bioinformatics.scm
+++ b/gn/packages/bioinformatics.scm
@@ -14,6 +14,8 @@
#:use-module (guix build-system trivial)
#:use-module (guix build-system waf)
#:use-module (gnu packages)
+ #:use-module (gn packages python)
+ #:use-module (gnu packages bioconductor)
#:use-module (gnu packages bioinformatics)
#:use-module (gnu packages boost)
#:use-module (gnu packages check)
@@ -22,6 +24,7 @@
#:use-module (gnu packages datastructures)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages gcc)
+ #:use-module (gnu packages graphviz)
#:use-module (gnu packages imagemagick)
#:use-module (gnu packages jemalloc)
#:use-module (gnu packages maths)
@@ -31,9 +34,13 @@
#:use-module (gnu packages protobuf)
#:use-module (gnu packages python)
#: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 readline)
- #:use-module (gnu packages statistics))
+ #:use-module (gnu packages serialization)
+ #:use-module (gnu packages statistics)
+ #:use-module (gnu packages time))
(define-public contra
(package
@@ -415,92 +422,7 @@ reads.")
(license license:non-copyleft)))
(define-public edirect-gn
- (package
- (inherit edirect)
- (name "edirect-gn")
- (arguments
- (substitute-keyword-arguments (package-arguments edirect)
- ((#:phases phases)
- `(modify-phases ,phases
- ; (replace 'build
- ; (lambda* (#:key inputs #:allow-other-keys)
- ; (let ((go (string-append (assoc-ref inputs "go") "/bin/go")))
- ; (invoke go "build" "xtract.go"))))
- (add-after 'unpack 'patch-programs
- (lambda* (#:key inputs #:allow-other-keys)
- (let ((gzip (assoc-ref inputs "gzip")))
- (substitute* '("index-bioc"
- "pm-index"
- "pm-invert"
- "pm-stash"
- "rchive.go"
- "run-ncbi-converter")
- (("gunzip") (string-append gzip "/bin/gunzip")))
- (substitute* (find-files "." "^e")
- (("exec perl") "exec"))
- (substitute* '("xtract" "rchive")
- ;; or add current directory to PATH
- ((".*PATH.*") "")))
- #t))
- (replace 'install
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let ((bin (string-append (assoc-ref outputs "out") "/bin"))
- (xtract.linux (assoc-ref inputs "xtract.Linux"))
- (rchive.linux (assoc-ref inputs "rchive.Linux")))
- (for-each
- (lambda (file)
- (install-file file bin))
- '("archive-pubmed" "asp-cp" "asp-ls" "download-pubmed"
- "edirect.pl" "efetch" "epost" "esearch" "fetch-pubmed"
- "ftp-cp" "ftp-ls" "has-asp" "pm-prepare" "pm-refresh"
- "pm-stash" "rchive" "xtract"))
- (copy-file xtract.linux (string-append bin "/xtract.Linux"))
- (copy-file rchive.linux (string-append bin "/rchive.Linux"))
- (chmod (string-append bin "/xtract.Linux") #o555)
- (chmod (string-append bin "/rchive.Linux") #o555))
- #t))
- (replace 'wrap-program
- (lambda* (#:key outputs #:allow-other-keys)
- ;; Make sure 'edirect.pl' finds all perl inputs at runtime.
- (let ((out (assoc-ref outputs "out"))
- (path (getenv "PERL5LIB")))
- (for-each
- (lambda (file)
- (wrap-program (string-append out "/bin/" file)
- `("PERL5LIB" ":" prefix (,path))))
- '("edirect.pl" "asp-ls" "ftp-cp" "ftp-ls")))
- #t))))))
- (inputs
- `(("gzip" ,gzip)
- ,@(package-inputs edirect)))
- (native-inputs
- `(
- ;("go" ,go)
- ("xtract.Linux"
- ,(origin
- (method url-fetch)
- (uri (string-append "ftp://ftp.ncbi.nlm.nih.gov/entrez/entrezdirect/"
- "/xtract.Linux")) ;; March 10, 2016
- (sha256
- (base32
- "15yhhh8kfipk12rhzabap81ys8wgj0khn0mp8p7zwqhq028fwj0l"))))
- ("rchive.Linux"
- ,(origin
- (method url-fetch)
- (uri (string-append "ftp://ftp.ncbi.nlm.nih.gov/entrez/entrezdirect/"
- "/rchive.Linux")) ;; November 14, 2017
- (sha256
- (base32
- "0hl8zj1md9xbmaj0pv99rjyisw8w74rirw97xwqk47dz8v8ml338"))))))
- (native-search-paths
- ;; Ideally this should be set for LWP somewhere.
- (list (search-path-specification
- (variable "PERL_LWP_SSL_CA_FILE")
- (file-type 'regular)
- (separator #f)
- (files '("/etc/ssl/certs/ca-certificates.crt")))))
- ;; Due to the precompiled binaries we download:
- (supported-systems '("x86_64-linux"))))
+ (deprecated-package "edirect-gn" edirect))
;; TODO: Unbundle zlib, bamtools, tclap
(define-public sniffles
@@ -856,19 +778,19 @@ interest, and this app can provide values and figures for applicants to use.")
(license license:gpl3))))
(define-public singlecellrshiny
- (let ((commit "8061dcb477ba355de77d3e4fd3a15cf3267b56af")
- (revision "1"))
+ (let ((commit "bdca74f4819d11e8fe7b15d9ab91b853f6542f7a")
+ (revision "3"))
(package
(name "singlecellrshiny")
(version (git-version "0.0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/syousefi/singleCellRshiny.git")
+ (url "https://github.com/genenetwork/singleCellRshiny")
(commit commit)))
(file-name (git-file-name name version))
(sha256
- (base32 "1pd8a9jx6ijjggsifvq66madx31h29rah5pmz4kdzfzb4fskpqz1"))))
+ (base32 "1rxj933s9p9r7358vnp15f7ag6c0j65r4hgr8kyirfhmp1i8xdlw"))))
(build-system trivial-build-system)
(arguments
`(#:modules ((guix build utils))
@@ -880,16 +802,20 @@ interest, and this app can provide values and figures for applicants to use.")
(app (string-append out "/bin/" ,name))
(Rbin (string-append (assoc-ref %build-inputs "r-min")
"/bin/Rscript"))
+ (top1001 (assoc-ref %build-inputs "RobTop1001.csv"))
+ (celltypes (assoc-ref %build-inputs "CellTypes_RGC_Master_08Dec2018.csv"))
+ (800-H1 (assoc-ref %build-inputs "800-H1-H20-RNA-Seq.csv"))
(source (assoc-ref %build-inputs "source")))
(copy-recursively source targetdir)
+ (substitute* (string-append targetdir "/app.R")
+ ;; As seen in https://github.com/genenetwork/singleCellRshiny/commit/6b2a344dd0d02f65228ad8c350bac0ced5850d05.patch
+ (("library\\(DT\\)") "library(DT)\nlibrary(multtest)"))
(substitute* (string-append targetdir "/global.R")
- (("800-H1-H20-RNA-Seq-SingleCell-Retina-OMRF-03-29-19_FPKM_v2_SiamakPlay.csv")
- "shinyRappToyDataset_SiamakPlay.csv")
- ;; Comment out the two unreferenced files for now
- (("^rgc.*") "")
- ;(("CellTypes_RGC_Master_08Dec2018.csv") "")
- ;(("RobTop1001.csv") "")
- )
+ (("800-H1-H20-RNA-Seq-SingleCell-Retina-OMRF-03-29-19_FPKM_v2_SiamakPlay.csv") 800-H1)
+ (("CellTypes_RGC_Master_08Dec2018.csv") celltypes)
+ (("RobTop1001.csv") top1001)
+ ;; As seen in https://github.com/genenetwork/singleCellRshiny/commit/6b2a344dd0d02f65228ad8c350bac0ced5850d05.patch
+ (("dim\\(sc.object.1") "dim(sc.object"))
(mkdir-p (string-append out "/bin"))
(call-with-output-file app
(lambda (port)
@@ -901,20 +827,41 @@ runApp(launch.browser=0, port=4208)~%\n"
Rbin targetdir)))
(chmod app #o555)
#t))))
- (native-inputs `(("source" ,source)))
(inputs
- `(("r-min" ,r-minimal)))
+ `(("r-min" ,r-minimal)
+ ("RobTop1001.csv"
+ ,(origin
+ (method url-fetch)
+ (uri "https://archive.org/download/celltypesrgcmaster08dec2018/RobTop1001.csv")
+ (file-name "RobTop1001.csv")
+ (sha256
+ (base32 "0pa73kc1p8417sjvvvhp9xsbh2h8g7h85pnmm16mnv4wjalhq0gn"))))
+ ("CellTypes_RGC_Master_08Dec2018.csv"
+ ,(origin
+ (method url-fetch)
+ (uri "https://archive.org/download/celltypesrgcmaster08dec2018/CellTypes_RGC_Master_08Dec2018.csv")
+ (file-name "CellTypes_RGC_Master_08Dec2018.csv")
+ (sha256
+ (base32 "0y411968np1f5g21iym9xc9yj5c1jsn94rpkwkxh9pw2z43gvghn"))))
+ ("800-H1-H20-RNA-Seq.csv"
+ ,(origin
+ (method url-fetch)
+ (uri "https://archive.org/download/celltypesrgcmaster08dec2018/800-H1-H20-RNA-Seq-SingleCell-Retina-OMRF-03-29-19_FPKM_v2_SiamakPlay.csv")
+ (file-name "800-H1-H20-RNA-Seq-SingleCell-Retina-OMRF-03-29-19_FPKM_v2_SiamakPlay.csv")
+ (sha256
+ (base32 "1b1y4lfs8drypm04i1rypbmk67rdqgs27nfh05pwnv3sja2nanam"))))))
(propagated-inputs
`(("r" ,r)
("r-dt" ,r-dt)
+ ("r-multtest" ,r-multtest)
("r-seurat" ,r-seurat)
("r-shiny" ,r-shiny)))
- (home-page "http://rn6err.opar.io/")
+ (home-page "http://singlecell.opar.io/")
(synopsis "RNA sequencing data analysis")
(description
"This is the R-Shiny programs to run some basic single cell RNA sequencing
(scRNA-seq) data analysis.")
- (license license:gpl3))))
+ (license license:agpl3))))
(define-public seqwish
(package
@@ -1193,3 +1140,169 @@ here}.")
(synopsis "Efficient sequence alignment of full genomes")
(description "MUMmer is a versatil alignment tool for DNA and protein sequences.")
(license license:artistic2.0)))
+
+(define-public grocsvs
+ (let ((commit "ecd956a65093a0b2c41849050e4512d46fecea5d")
+ (revision "1"))
+ (package
+ (name "grocsvs")
+ (version (git-version "0.2.6.1" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/grocsvs/grocsvs")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "14505725gr7qxc17cxxf0k6lzcwmgi64pija4mwf29aw70qn35cc"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:python ,python-2)) ; Only python-2 supported.
+ (inputs
+ `(("python2-admiral" ,python2-admiral)
+ ("python2-h5py" ,python2-h5py)
+ ("python2-ipython-cluster-helper" ,python2-ipython-cluster-helper)
+ ("python2-networkx" ,python2-networkx)
+ ("python2-psutil" ,python2-psutil)
+ ("python2-pandas" ,python2-pandas)
+ ("python2-pybedtools" ,python2-pybedtools)
+ ("python2-pyfaidx" ,python2-pyfaidx)
+ ("python2-pygraphviz" ,python2-pygraphviz)
+ ("python2-pysam" ,python2-pysam)
+ ("python2-scipy" ,python2-scipy)))
+ (home-page "https://github.com/grocsvs/grocsvs")
+ (synopsis "Genome-wide reconstruction of complex structural variants")
+ (description
+ "@dfn{Genome-wide Reconstruction of Complex Structural Variants}
+(GROC-SVs), is a software pipeline for identifying large-scale structural
+variants, performing sequence assembly at the breakpoints, and reconstructing
+the complex structural variants using the long-fragment information from the
+10x Genomics platform.")
+ (license license:expat))))
+
+(define-public diagnostic-slider
+ (let ((commit "514d65d4982133e4869e578c5553fced4c6d506c")
+ (revision "1"))
+ (package
+ (name "diagnostic-slider")
+ (version (git-version "0.0.0" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/sens/diagnostic-slider")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "04g8if32g8syg6v0bd3jjn05i3d394nx8i3ccl0883p8mlmdvlmx"))))
+ (build-system trivial-build-system)
+ (arguments
+ `(#:modules ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils))
+ (let* ((out (assoc-ref %outputs "out"))
+ (targetdir (string-append out "/share/" ,name))
+ (app (string-append out "/bin/" ,name))
+ (Rbin (string-append (assoc-ref %build-inputs "r-min")
+ "/bin/Rscript"))
+ (source (assoc-ref %build-inputs "source")))
+ (copy-recursively source targetdir)
+ (mkdir-p (string-append out "/bin"))
+ (call-with-output-file app
+ (lambda (port)
+ (format port
+"#!~a
+library(shiny)
+setwd(\"~a\")
+runApp(launch.browser=0, port=4206)~%\n"
+ Rbin targetdir)))
+ (chmod app #o555)
+ #t))))
+ (native-inputs
+ `(("source" ,source)))
+ (inputs
+ `(("r-min" ,r-minimal)))
+ (propagated-inputs
+ `(("r" ,r)
+ ("r-shiny" ,r-shiny)))
+ (home-page "https://github.com/sens/diagnostic-slider")
+ (synopsis "")
+ (description
+ "")
+ (license #f))))
+
+(define-public bh20-seq-resource
+ (let ((commit "bbca5ac9b2538e410efe3e09651f87e5573145de")
+ (revision "2"))
+ (package
+ (name "bh20-seq-resource")
+ (version (git-version "1.0" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/arvados/bh20-seq-resource")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1kkysjgmhp7kfb17470ik821p9djsidyqmkbjvv37jx2w9pvw31z"))))
+ (build-system python-build-system)
+ (inputs
+ `(("python-arvados-python-client" ,python-arvados-python-client)
+ ("python-flask" ,python-flask)
+ ("python-magic" ,python-magic)
+ ("python-pyyaml" ,python-pyyaml)
+ ("python-schema-salad" ,python-schema-salad)))
+ (native-inputs
+ `(("git" ,(@ (gnu packages version-control) git))
+ ("python-oauth2client" ,python-oauth2client)
+ ("python-pytest" ,python-pytest)
+ ("python-pytest-runner" ,python-pytest-runner)
+ ("python-uritemplate" ,python-uritemplate)))
+ (home-page "https://github.com/arvados/bh20-seq-resource")
+ (synopsis
+ "Tool to upload SARS-CoV-19 sequences and service to kick off analysis")
+ (description "This repository provides a sequence uploader for the
+COVID-19 Virtual Biohackathon's Public Sequence Resource project. You can use
+it to upload the genomes of SARS-CoV-2 samples to make them publicly and freely
+available to other researchers.")
+ (license license:asl2.0))))
+
+(define-public python-scanpy-git
+ (let ((commit "590d42309f9ed6550d7b887039990edfc1ac7648") ; April 22, 2020
+ (revision "1"))
+ (package
+ (inherit python-scanpy)
+ (name "python-scanpy-git")
+ (version (git-version "1.4.6" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/theislab/scanpy")
+ (commit commit)))
+ (file-name (git-file-name "python-scanpy" version))
+ (sha256
+ (base32 "0z3pk9vh4b7fqq7fs262i6z0pm1dnn6bf49a4r7r73k6gjj6namd"))))
+ (arguments
+ (substitute-keyword-arguments (package-arguments python-scanpy)
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (add-before 'build 'fix-build
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out"))
+ (pyv (python-version (assoc-ref inputs "python"))))
+ (substitute* "setup.py"
+ (("use_scm_version=True") "use_scm_version=False"))
+ (substitute* "scanpy/__init__.py"
+ (("__version__.*")
+ (string-append "__version__ = '" ,version "'\n")))
+ (mkdir-p
+ (string-append out "/lib/python" pyv "/site-packages"))
+ (setenv "PYTHONPATH"
+ (string-append out
+ "/lib/python" pyv "/site-packages/:"
+ (getenv "PYTHONPATH"))))
+ ;; These tests fail on this git revision
+ (delete-file "scanpy/tests/test_neighbors_key_added.py")
+ (delete-file "scanpy/tests/test_pca.py")
+ #t)))))))))
diff --git a/gn/packages/bnw.scm b/gn/packages/bnw.scm
index 5c97eab..043077d 100644
--- a/gn/packages/bnw.scm
+++ b/gn/packages/bnw.scm
@@ -14,7 +14,7 @@
(define-public bnw
(let ((commit "eb6b002b924694808384f1a8d7c6d1121806ae04")
- (revision "5"))
+ (revision "6"))
(package
(name "bnw")
(version (git-version "1.22" revision commit)) ; June 28, 2019
@@ -86,59 +86,101 @@
(("rmdir ") (string-append (which "rmdir") " "))
(("wc ") (string-append (which "wc") " ")))
#t)))
- ;(add-after 'patch-source-shebangs 'replace-javascript
- ; (lambda* (#:key inputs #:allow-other-keys)
- ; (let (
- ; (jquery (assoc-ref inputs "jquery"))
- ; (awesome (assoc-ref inputs "awesome"))
- ; (cyto (assoc-ref inputs "cytoscape"))
- ; (cyto2 (assoc-ref inputs "cytoscape-2"))
- ; (cs-dagre (assoc-ref inputs "cyto-dagre"))
- ; (d3js (assoc-ref inputs "d3js"))
- ; (d3js-multi (assoc-ref inputs "d3js-multi"))
- ; (dagre (assoc-ref inputs "dagre"))
- ; (lodash (assoc-ref inputs "lodash"))
- ; (canvas-toblob (assoc-ref inputs "canvas-toblob"))
- ; (filesaver (assoc-ref inputs "filesaver"))
- ; (panzoom (assoc-ref inputs "panzoom"))
- ; (js-path "/share/genenetwork2/javascript/")
- ; )
- ;(substitute* "sourcecodes/layout_cyto.php"
- ; (("https://cdnjs.cloudflare.com/ajax/libs/cytoscape/3.7.1/cytoscape.min.js")
- ; (string-append cyto js-path "cytoscape/cytoscape.min.js"))
- ; (("https://cdnjs.cloudflare.com/ajax/libs/cytoscape/2.7.29/cytoscape.min.js")
- ; (string-append cyto2 js-path "cytoscape/cytoscape.min.js"))
- ; (("http://spades.bioinf.spbau.ru/~alla/graph_viewer/js/cytoscape-dagre.js")
- ; (string-append cs-dagre js-path "cytoscape-dagre/cytoscape-dagre.js"))
- ; (("https://unpkg.com/dagre@0.7.4/dist/dagre.js")
- ; (string-append dagre js-path "dagre/dagre.js"))
- ; (("https://cdnjs.cloudflare.com/ajax/libs/cytoscape-panzoom/2.5.3/cytoscape.js-panzoom.css")
- ; (string-append panzoom js-path "cytoscape-panzoom/cytoscape.js-panzoom.css"))
- ; (("https://cdnjs.cloudflare.com/ajax/libs/cytoscape-panzoom/2.5.3/cytoscape-panzoom.js")
- ; (string-append panzoom js-path "cytoscape-panzoom/cytoscape-panzoom.js"))
- ; (("https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.0.3/css/font-awesome.css")
- ; (string-append awesome "/share/web/font-awesome/css/font-awesome.css"))
- ; (("https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js")
- ; (string-append jquery "/share/web/jquery/jquery.min.js"))
- ; (("https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.10/lodash.js")
- ; (string-append lodash js-path "lodash/lodash.js")))
- ;(substitute* '("sourcecodes/layout_svg_wt.php"
- ; "sourcecodes/layout_svg_no.php")
- ; (("http://d3js.org/d3.v4.min.js")
- ; (string-append d3js js-path "d3js/d3.min.js"))
- ; (("http://d3js.org/d3-selection-multi.v1.js")
- ; (string-append d3js-multi js-path "d3js-multi/d3-selection-multi.js"))
- ; (("https://cdn.rawgit.com/eligrey/canvas-toBlob.js/f1a01896135ab378aa5c0118eadd81da55e698d8/canvas-toBlob.js")
- ; (string-append canvas-toblob js-path "canvas-toBlob/canvas-toBlob.js"))
- ; (("https://cdn.rawgit.com/eligrey/FileSaver.js/e9d941381475b5df8b7d7691013401e171014e89/FileSaver.min.js")
- ; (string-append filesaver js-path "filesaver/filesaver.js")))
- ; )
- ; #t))
+ (add-after 'patch-source-shebangs 'replace-javascript
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((jquery (assoc-ref inputs "jquery"))
+ (awesome (assoc-ref inputs "awesome"))
+ (cyto (assoc-ref inputs "cytoscape"))
+ (cyto2 (assoc-ref inputs "cytoscape-2"))
+ (cs-dagre (assoc-ref inputs "cyto-dagre"))
+ (d3js (assoc-ref inputs "d3js"))
+ (d3js-multi (assoc-ref inputs "d3js-multi"))
+ (dagre (assoc-ref inputs "dagre"))
+ (lodash (assoc-ref inputs "lodash"))
+ (canvas-toblob (assoc-ref inputs "canvas-toblob"))
+ (filesaver (assoc-ref inputs "filesaver"))
+ (panzoom (assoc-ref inputs "panzoom"))
+ (js-path "/share/genenetwork2/javascript/"))
+ (substitute* "sourcecodes/layout_cyto.php"
+ (("https://cdnjs.cloudflare.com/ajax/libs/cytoscape/3.7.1/cytoscape.min.js")
+ "/javascript/cytoscape.min.js")
+ (("https://cdnjs.cloudflare.com/ajax/libs/cytoscape/2.7.29/cytoscape.min.js")
+ "/javascript/cytoscape2.min.js")
+ (("http://spades.bioinf.spbau.ru/~alla/graph_viewer/js/cytoscape-dagre.js")
+ "/javascript/cytoscape-dagre.js")
+ (("https://unpkg.com/dagre@0.7.4/dist/dagre.js")
+ "/javascript/dagre.js")
+ (("https://cdnjs.cloudflare.com/ajax/libs/cytoscape-panzoom/2.5.3/cytoscape.js-panzoom.css")
+ "/javascript/cytoscape.js-panzoom.css")
+ (("https://cdnjs.cloudflare.com/ajax/libs/cytoscape-panzoom/2.5.3/cytoscape-panzoom.js")
+ "/javascript/cytoscape-panzoom.js")
+ (("https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.0.3/css/font-awesome.css")
+ "/javascript/font-awesome.css")
+ (("https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js")
+ "/javascript/jquery.min.js")
+ (("https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.10/lodash.js")
+ "/javascript/lodash.js"))
+ (substitute* '("sourcecodes/layout_svg_wt.php"
+ "sourcecodes/layout_svg_no.php")
+ (("http://d3js.org/d3.v4.min.js")
+ "/javascript/d3.min.js")
+ (("http://d3js.org/d3-selection-multi.v1.js")
+ "/javascript/d3-selection-multi.js")
+ (("https://cdn.rawgit.com/eligrey/canvas-toBlob.js/f1a01896135ab378aa5c0118eadd81da55e698d8/canvas-toBlob.js")
+ "/javascript/canvas-toBlob.js")
+ (("https://cdn.rawgit.com/eligrey/FileSaver.js/e9d941381475b5df8b7d7691013401e171014e89/FileSaver.min.js")
+ "/javascript/filesaver.js")))
+ #t))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(copy-recursively "." out))
#t))
+ (add-after 'install 'install-javascript-libraries
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out"))
+ (jquery (assoc-ref inputs "jquery"))
+ (awesome (assoc-ref inputs "awesome"))
+ (cyto (assoc-ref inputs "cytoscape"))
+ (cyto2 (assoc-ref inputs "cytoscape-2"))
+ (cs-dagre (assoc-ref inputs "cyto-dagre"))
+ (d3js (assoc-ref inputs "d3js"))
+ (d3js-multi (assoc-ref inputs "d3js-multi"))
+ (dagre (assoc-ref inputs "dagre"))
+ (lodash (assoc-ref inputs "lodash"))
+ (canvas-toblob (assoc-ref inputs "canvas-toblob"))
+ (filesaver (assoc-ref inputs "filesaver"))
+ (panzoom (assoc-ref inputs "panzoom"))
+ (js-path "/share/genenetwork/javascript/")
+ (js-path2 "/share/genenetwork2/javascript/"))
+ (mkdir-p (string-append out "/javascript"))
+ (symlink (string-append (string-append cyto2 js-path2 "cytoscape/cytoscape.min.js"))
+ (string-append out "/javascript/cytoscape.min.js"))
+ (symlink (string-append (string-append cyto js-path2 "cytoscape/cytoscape.min.js"))
+ (string-append out "/javascript/cytoscape2.min.js"))
+ (symlink (string-append cs-dagre js-path2 "cytoscape-dagre/cytoscape-dagre.js")
+ (string-append out "/javascript/cytoscape-dagre.js"))
+ (symlink (string-append dagre js-path2 "dagre/dagre.js")
+ (string-append out "/javascript/dagre.js"))
+ (symlink (string-append panzoom js-path2 "cytoscape-panzoom/cytoscape.js-panzoom.css")
+ (string-append out "/javascript/cytoscape.js-panzoom.css"))
+ (symlink (string-append panzoom js-path2 "cytoscape-panzoom/cytoscape-panzoom.js")
+ (string-append out "/javascript/cytoscape-panzoom.js"))
+ (symlink (string-append awesome "/share/web/font-awesomecss/font-awesome.css")
+ (string-append out "/javascript/font-awesome.css"))
+ (symlink (string-append jquery "/share/web/jquery/jquery.min.js")
+ (string-append out "/javascript/jquery.min.js"))
+ (symlink (string-append lodash js-path2 "lodash/lodash.js")
+ (string-append out "/javascript/lodash.js"))
+ (symlink (string-append d3js js-path "d3js/d3.min.js")
+ (string-append out "/javascript/d3.min.js"))
+ (symlink (string-append d3js-multi js-path "d3js-multi/d3-selection-multi.js")
+ (string-append out "/javascript/d3-selection-multi.js"))
+ (symlink (string-append canvas-toblob js-path "canvas-toblob/canvas-toBlob.js")
+ (string-append out "/javascript/canvas-toBlob.js"))
+ (symlink (string-append filesaver js-path2 "filesaver/FileSaver.js")
+ (string-append out "/javascript/filesaver.js"))
+ #t)))
(add-after 'install 'make-files-executable
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
diff --git a/gn/packages/cran.scm b/gn/packages/cran.scm
new file mode 100644
index 0000000..d92f9f3
--- /dev/null
+++ b/gn/packages/cran.scm
@@ -0,0 +1,29 @@
+(define-module (gn packages cran)
+ #:use-module ((guix licenses) #:prefix license:)
+ #:use-module (guix packages)
+ #:use-module (guix download)
+ #:use-module (guix build-system r)
+ #:use-module (gnu packages))
+
+(define-public r-tictoc
+ (package
+ (name "r-tictoc")
+ (version "1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (cran-uri "tictoc" version))
+ (sha256
+ (base32
+ "1zp2n8k2ax2jjw89dsri268asmm5ry3ijf32wbca5ji231y0knj7"))))
+ (build-system r-build-system)
+ (home-page "http://github.com/collectivemedia/tictoc")
+ (synopsis "Functions for timing R scripts")
+ (description
+ "This package provides the timing functions @code{tic} and @code{toc} that
+can be nested. One can record all timings while a complex script is running,
+and examine the values later. It is also possible to instrument the timing call
+with custom callbacks. In addition, this package provides class 'Stack',
+implemented as a vector, and class 'List', implemented as a list, both of whic
+support operations 'push', 'pop', 'first', 'last' and 'clear'.")
+ (license license:asl2.0)))
diff --git a/gn/packages/cwl.scm b/gn/packages/cwl.scm
index 6e0c909..be531f6 100644
--- a/gn/packages/cwl.scm
+++ b/gn/packages/cwl.scm
@@ -61,7 +61,7 @@
("python-mock" ,python-mock)
("python-subprocess32" ,python-subprocess32)
("python-ruamel.yaml" ,python-ruamel.yaml)
- ("python-cachecontrol" ,python-cachecontrol)
+ ("python-cachecontrol" ,python-cachecontrol-0.11)
("python-lxml" ,python-lxml)
("python-mypy-extensions" ,python-mypy-extensions)
("python-mistune" ,python-mistune)
@@ -89,78 +89,3 @@
(description
"Common workflow language reference implementation")
(license license:asl2.0))))
-
-(define-public python-cachecontrol
- (package
- (name "python-cachecontrol")
- (version "0.11.7")
- (source
- (origin
- (method url-fetch)
- ;; Pypi does not have tests.
- (uri (string-append
- "https://github.com/ionrock/cachecontrol/archive/v"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32
- "1yfhwihx1b1xjsx0r19va2m0r2s91im03x4d7pwzp87368f2lkkp"))))
- (build-system python-build-system)
- (arguments
- `(#:tests? #f)) ;; Recent version breaks on cherrypy
- (native-inputs
- `(("python-pytest" ,python-pytest)
- ("python-redis" ,python-redis)
- ("python-webtest" ,python-webtest)
- ("python-mock" ,python-mock)))
- (propagated-inputs
- `(("python-requests" ,python-requests)
- ("python-lockfile" ,python-lockfile)))
- (home-page "https://github.com/ionrock/cachecontrol")
- (synopsis "The httplib2 caching algorithms for use with requests")
- (description "CacheControl is a port of the caching algorithms in
-@code{httplib2} for use with @code{requests} session objects.")
- (license license:asl2.0)))
-
-
-(define-public python-schema-salad
- (let ((commit "eb85c3d49b99b7643e8a12248e2dc05504910c1e"))
- (package
- (name "python-schema-salad")
- (version "3.0.20181129082112")
- (source
- (origin
- ; (method url-fetch)
- ; (uri (pypi-uri "schema-salad" version))
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/genenetwork/schema_salad.git") ;; my repo for Python3.7
- (commit commit)))
- (file-name (git-file-name name (string-append version "-" (string-take commit 7))))
- (sha256
- (base32
- "174f224zzjr0nbjlq3ypciyfijnibasysrgjswvx8yhan2dizlhr"))))
- (build-system python-build-system)
- (arguments `(#:tests? #f)) ;; CWL includes no tests.
- (inputs
- `(("python-cython" ,python-cython)
- ("python-setuptools" ,python-setuptools)
- ("python-rdflib-jsonld" ,python-rdflib-jsonld)
- ("python-mistune" ,python-mistune)))
- (propagated-inputs
- `(("python-rdflib" ,python-rdflib)
- ("python-avro" ,python-avro)
- ("python-pyyaml" ,python-pyyaml)
- ("python-requests" ,python-requests)
- ("python-shellescape" ,python-shellescape)
- ))
- (home-page
- "https://github.com/common-workflow-language/common-workflow-language")
- (synopsis
- "Schema Annotations for Linked Avro Data (SALAD)")
- (description
- "Schema Annotations for Linked Avro Data (SALAD)")
- (license license:asl2.0))))
-
-; (define-public python2-schema-salad
-; (package-with-python2 python-schema-salad))
diff --git a/gn/packages/graphviz.scm b/gn/packages/graphviz.scm
index 81e745c..33b15a1 100644
--- a/gn/packages/graphviz.scm
+++ b/gn/packages/graphviz.scm
@@ -3,7 +3,6 @@
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix utils)
- #:use-module (gn packages python24)
#:use-module (gnu packages gl)
#:use-module (gnu packages graphviz)
#:use-module (gnu packages gtk)
@@ -28,18 +27,16 @@
"18bzyg17ni0lpcd2g5dhan8fjv3vzkjym38jq8vm42did5p9j47l"))))
;; TODO: unbundle libraries?
(arguments
- `(#:configure-flags '("--enable-python24=yes")
+ `(#:configure-flags '("--enable-swig=no")
,@(substitute-keyword-arguments (package-arguments graphviz)
((#:phases phases)
`(modify-phases ,phases
(delete 'move-docs) ; one output
(delete 'move-guile-bindings))))))
(inputs
- ;; TODO: Add(?) perl, guile@1.8, gtk@2, lua5.1, tcl8.[3-6], rsvg
+ ;; TODO(?): Add perl, guile@1.8, gtk@2, lua5.1, tcl8.[3-6], rsvg, python-2.4
`(("gdk-pixbuf" ,gdk-pixbuf)
- ;("ghostscript" ,ghostscript)
("freeglut" ,freeglut)
- ("python2.4" ,python-2.4)
,@(fold alist-delete (package-inputs graphviz)
- '("libjpeg" "guile"))))
+ '("libjpeg" "guile" "swig"))))
(license license:cpl1.0)))
diff --git a/gn/packages/javascript.scm b/gn/packages/javascript.scm
index 79a8060..95d4154 100644
--- a/gn/packages/javascript.scm
+++ b/gn/packages/javascript.scm
@@ -1121,3 +1121,27 @@ widgets, and themes built on top of the jQuery JavaScript Library.")
(name "js-jquery-ui")
(arguments `(#:javascript-files '("ui/jquery-ui.js")))
(build-system minify-build-system)))
+
+(define-public js-popper
+ (package
+ (name "js-popper")
+ (version "2.0.6")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/popperjs/popper-core")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0lzy981p9nja2l3xa2zvals6q31v3bzpxxa85yn9pm7wkj3vglf2"))))
+ (build-system minify-build-system)
+ (arguments
+ `(#:javascript-files '("src/popper.js")))
+ (home-page "https://popper.js.org/")
+ (synopsis "Tooltip and popover positioning engine")
+ (description
+ "Given an element, such as a button, and a tooltip element describing it,
+Popper will automatically put the tooltip in the right place near the button.")
+ (license license:expat)))
diff --git a/gn/packages/julia.scm b/gn/packages/julia.scm
new file mode 100644
index 0000000..b55efde
--- /dev/null
+++ b/gn/packages/julia.scm
@@ -0,0 +1,198 @@
+(define-module (gn packages julia)
+ #:use-module ((guix licenses) #:prefix license:)
+ #:use-module (guix utils)
+ #:use-module (guix packages)
+ #:use-module (guix download)
+ #:use-module (guix git-download)
+ #:use-module (guix build-system julia)
+ #:use-module (gn packages cran)
+ #:use-module (gnu packages bioinformatics)
+ #:use-module (gnu packages compression)
+ #:use-module (gnu packages cran)
+ #:use-module (gnu packages statistics)
+ #:use-module (ice-9 match))
+
+(define-public julia-lmgpu
+ (let ((commit "e9e95b5fa46f1905ca1ff32a3684a2616a7e482c")
+ (revision "1"))
+ (package
+ (name "julia-lmgpu")
+ (version (git-version "0.1.1" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ChelseaTrotter/LMGPU.jl")
+ (commit commit)))
+ ;(file-name (git-file-name name version))
+ (file-name "LMGPU")
+ (sha256
+ (base32
+ "1ddx2np1lakw1l2dclpcaihxd0fcj6bjxsvaxr6g5brxjqk5j7b1"))))
+ (build-system julia-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ ;; This is a super ugly hack. Some JULIA environment variable should
+ ;; be tuned so it can find the artifact directory.
+ (add-after 'unpack 'symlink-zlib-into-artifact-directory
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((julia-dir (string-append (assoc-ref outputs "out")
+ "/share/julia")))
+ (mkdir-p julia-dir)
+ (symlink
+ (string-append (assoc-ref inputs "julia-zlib-jll")
+ "/share/julia/artifacts")
+ (string-append julia-dir "/artifacts")))
+ #t))
+ (add-after 'precompile 'check
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (builddir (string-append out "/share/julia/")))
+ (setenv "JULIA_LOAD_PATH"
+ (string-append builddir "packages/" ":"
+ (or (getenv "JULIA_LOAD_PATH")
+ "")))
+ (setenv "HOME" (getcwd))
+ (invoke "julia" "test/runtests.jl")))))))
+ (native-inputs
+ `(("r" ,r-minimal)
+ ("r-mice" ,r-mice)
+ ("r-qtl2" ,r-qtl2)
+ ("r-tictoc" ,r-tictoc)
+ ("r-tidyverse" ,r-tidyverse)))
+ (propagated-inputs
+ `(("julia-zipfile" ,julia-zipfile)))
+ (home-page "https://github.com/ChelseaTrotter/LMGPU.jl")
+ (synopsis "")
+ (description "")
+ (license license:expat))))
+
+(define-public julia-lmgpu-myapp
+ (package
+ (inherit julia-lmgpu)
+ (name "julia-lmgpu-myapp")
+ (source
+ (origin (inherit (package-source julia-lmgpu))
+ (file-name "MyApp")))
+ (arguments
+ (substitute-keyword-arguments (package-arguments julia-lmgpu)
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (add-after 'unpack 'change-directory
+ (lambda _
+ (chdir "bin/MyApp") #t))))))
+ (propagated-inputs
+ `(("julia-lmgpu" ,julia-lmgpu)
+ ,@(package-propagated-inputs julia-lmgpu)))
+ (native-inputs
+ `(("julia-packagecompiler" ,julia-packagecompiler)))))
+
+(define-public julia-zipfile
+ (package
+ (name "julia-zipfile")
+ (version "0.9.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/fhs/ZipFile.jl")
+ (commit (string-append "v" version))))
+ ;(file-name (git-file-name name version))
+ (file-name "ZipFile")
+ (sha256
+ (base32
+ "1fpvlhfqg5kgq5vchlf8dyc73r6dzki0dz7plddc3bnr0ld00rlw"))))
+ (build-system julia-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ ;; This is a super ugly hack. Some JULIA environment variable should
+ ;; be tuned so it can find the artifact directory.
+ (add-after 'unpack 'symlink-zlib-into-artifact-directory
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((julia-dir (string-append (assoc-ref outputs "out")
+ "/share/julia")))
+ (mkdir-p julia-dir)
+ (symlink
+ (string-append (assoc-ref inputs "julia-zlib-jll")
+ "/share/julia/artifacts")
+ (string-append julia-dir "/artifacts")))
+ #t)))))
+ (propagated-inputs
+ `(("julia-zlib-jll" ,julia-zlib-jll)))
+ (home-page "https://github.com/fhs/ZipFile.jl")
+ (synopsis "Read/Write ZIP archives in Julia")
+ (description "This module provides support for reading and writing ZIP
+archives in Julia.")
+ (license license:expat)))
+
+(define-public julia-zlib-jll
+ (package
+ (name "julia-zlib-jll")
+ (version "1.2.11+9")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaBinaryWrappers/Zlib_jll.jl")
+ (commit (string-append "Zlib-v" version))))
+ ;(file-name (git-file-name name version))
+ (file-name "Zlib_jll")
+ (sha256
+ (base32
+ "0m9n8dp4bwhkyjag1szmhz02k0bxzm4ka2ia2jh8crnd1qi8w9dz"))))
+ (build-system julia-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'symlink-zlib-into-artifact-directory
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((artifacts (string-append (assoc-ref outputs "out")
+ "/share/julia/artifacts")))
+ (mkdir-p artifacts)
+ (symlink
+ (assoc-ref inputs "zlib")
+ ;; from git-tree-sha1 in Artifacts.toml
+ (string-append
+ artifacts
+ ,(match (%current-system)
+ ("x86_64-linux" "/7846a2956a213715c2c76632f3461cef87d9d545")
+ ("i686-linux" "/c8456cbd00982236828623bbc63f21b9b7b03821")
+ ("armhf-linux" "/748c38025b5596a5005a87ac2b9476603cf8615b")
+ ("aarch64-linux" "/3dd0c7cd5424c8746a1a32034ba1b10458f20b3b")
+ (_ "/UNSUPPORTED")))))
+ #t)))))
+ (native-inputs
+ `(("zlib" ,zlib)))
+ (home-page "https://github.com/JuliaBinaryWrappers/Zlib_jll.jl")
+ (synopsis "Autogenerated package constructed using BinaryBuilder.jl")
+ (description "This is an autogenerated package constructed using
+@url{https://github.com/JuliaPackaging/BinaryBuilder.jl, BinaryBuilder.jl}.")
+ (license license:expat)))
+
+(define-public julia-packagecompiler
+ (package
+ (name "julia-packagecompiler")
+ (version "1.1.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JuliaLang/PackageCompiler.jl")
+ (commit (string-append "v" version))))
+ ;(file-name (git-file-name name version))
+ (file-name "PackageCompiler")
+ (sha256
+ (base32
+ "1s9xc17i308fdpyvkz1w6qb1h7yncdr2jgk1szfvygxd6yzkv1b4"))))
+ (build-system julia-build-system)
+ (home-page "https://github.com/JuliaLang/PackageCompiler.jl")
+ (synopsis "Compile your Julia Package")
+ (description "PackageCompiler is a Julia package with two main purposes:
+@itemize
+@item Creating custom sysimages for reduced latency when working locally with
+packages that has a high startup time.
+@item Creating \"apps\" which are a bundle of files including an executable that
+can be sent and run on other machines without Julia being installed on that machine.
+@end itemize")
+ (license license:expat)))
diff --git a/gn/packages/jupyterhub.scm b/gn/packages/jupyterhub.scm
index 5b69b5b..43da8ec 100644
--- a/gn/packages/jupyterhub.scm
+++ b/gn/packages/jupyterhub.scm
@@ -15,6 +15,7 @@
#:use-module (gnu packages python-crypto)
#:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz)
+ #:use-module (gnu packages rpc)
#:use-module (gnu packages serialization)
#:use-module (gnu packages time)
#:use-module (gn packages node))
diff --git a/gn/packages/maths.scm b/gn/packages/maths.scm
index 9e15400..1c1c1ae 100644
--- a/gn/packages/maths.scm
+++ b/gn/packages/maths.scm
@@ -30,6 +30,7 @@
((#:configure-flags cf)
`(cons "--enable-docs=no" ; docs fail to build
,cf))
+ ((#:tests? _ #f) #f) ; tests hang
((#:phases phases)
`(modify-phases ,phases
(add-after 'unpack 'patch-configure-script
diff --git a/gn/packages/python.scm b/gn/packages/python.scm
index 60558a2..7e4786f 100644
--- a/gn/packages/python.scm
+++ b/gn/packages/python.scm
@@ -3,6 +3,7 @@
#:use-module (gnu packages)
#:use-module (gnu packages attr)
#:use-module (gnu packages base)
+ #:use-module (gnu packages bioinformatics)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages databases)
@@ -30,6 +31,7 @@
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages rdf)
#:use-module (gnu packages readline)
+ #:use-module (gnu packages serialization)
#:use-module (gnu packages statistics)
#:use-module (gnu packages tcl)
#:use-module (gnu packages tex)
@@ -228,25 +230,6 @@ until a value is returned.")
"A library for W3C Provenance Data Model supporting PROV-JSON, PROV-XML and PROV-O (RDF)")
(license license:expat)))
-(define-public python-typing-extensions; guix candidate
- (package
- (name "python-typing-extensions")
- (version "3.6.6")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "typing_extensions" version))
- (sha256
- (base32
- "07vhddjnd3mhdijyc3s0mwi9jgfjp3rr056nxqiavydbvkrvgrsi"))))
- (build-system python-build-system)
- (home-page "https://pypi.python.org/pypi/typing_extensions")
- (synopsis "Python typing_extensions.")
- (description
- "Python typing_extensions.")
- (license license:gpl2))
-)
-
(define-public python-subprocess32 ; guix candidate
(package
(name "python-subprocess32")
@@ -322,39 +305,6 @@ until a value is returned.")
(define-public python2-xlsxwriter
(package-with-python2 python-xlsxwriter))
-(define-public python-rdflib-jsonld ; guix ready
- (package
- (name "python-rdflib-jsonld")
- (version "0.4.0")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "rdflib-jsonld" version))
- (sha256
- (base32
- "0bdw2pbjmpy1l4p6slsjn54bqy6crk5hk4san84xxirgd9w78iql"))))
- (build-system python-build-system)
- (inputs
- `(("python-setuptools" ,python-setuptools)))
- (propagated-inputs
- `(("python-rdflib" ,python-rdflib)
- ("python-isodate" ,python-isodate)
- ("python-pyparsing" ,python-pyparsing)
- ("python-html5lib" ,python-html5lib)
- ("python-nose" ,python-nose)
-))
- (home-page
- "https://github.com/RDFLib/rdflib-jsonld")
- (synopsis
- "rdflib extension adding JSON-LD parser and serializer")
- (description
- "rdflib extension adding JSON-LD parser and serializer")
- (license license:bsd-3)))
-
-(define-public python2-rdflib-jsonld
- (package-with-python2 python-rdflib-jsonld))
-
-
(define-public python-rserve
(package
(name "python-rserve")
@@ -1094,3 +1044,142 @@ spreadsheets without the need for COM objects.")
(synopsis "")
(description "")
(license license:bsd-4)))
+
+(define-public python-admiral
+ (package
+ (name "python-admiral")
+ (version "0.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "admiral" version))
+ (sha256
+ (base32
+ "1b2zjgyz94ld5wr7s4cm4x5sxijx3w0dmd7r2cq1s8iqjzz6rd1x"))))
+ (build-system python-build-system)
+ (arguments '(#:tests? #f)) ; No tests
+ (propagated-inputs
+ `(("python-humanfriendly" ,python-humanfriendly)))
+ (home-page "https://github.com/nspies/admiral")
+ (synopsis
+ "Simple python high-performance computing cluster batch submission")
+ (description
+ "Simple python high-performance computing cluster batch submission.")
+ (license #f))) ; No license in repository.
+
+(define-public python2-admiral
+ (package-with-python2 python-admiral))
+
+(define-public python-cachecontrol-0.11
+ (package
+ (inherit python-cachecontrol)
+ (name "python-cachecontrol")
+ (version "0.11.7")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "CacheControl" version))
+ (sha256
+ (base32
+ "07jsfhlbcwgqg6ayz8nznzaqg5rmxqblbzxz1qvg5wc44pcjjy4g"))))))
+
+(define-public python-ruamel.yaml-0.15
+ (package
+ (inherit python-ruamel.yaml)
+ (name "python-ruamel.yaml")
+ (version "0.15.77")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "ruamel.yaml" version))
+ (sha256
+ (base32
+ "1mhzxkkiv3xmr9izrgk78x7f1r5gi8kd5ac7z3vn7j00q1ydn6da"))))))
+
+(define-public python-pbr-1.6.0
+ (package
+ (inherit python-pbr)
+ (name "python-pbr")
+ (version "1.6.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pbr" version))
+ (sha256
+ (base32
+ "1lg1klrczvzfan89y3bl9ykrknl3nb01vvai37fkww24apzyibjf"))))))
+
+(define-public python-arvados-python-client
+ (package
+ (name "python-arvados-python-client")
+ (version "2.0.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "arvados-python-client" version))
+ (sha256
+ (base32
+ "19l4w6m5426x5k2kick630dh2jx26j16ycs2nhbfgr4cd43d29y4"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:tests? #f)) ; tests not included?
+ (propagated-inputs
+ `(("python-ciso8601" ,python-ciso8601)
+ ("python-future" ,python-future)
+ ;("python-google-api-python-client" ,python-google-api-python-client)
+ ("python-google-api-client" ,python-google-api-client)
+ ("python-httplib2" ,python-httplib2)
+ ("python-pycurl" ,python-pycurl)
+ ("python-ruamel.yaml" ,python-ruamel.yaml-0.15)
+ ("python-setuptools" ,python-setuptools)
+ ("python-ws4py" ,python-ws4py)))
+ (native-inputs
+ `(("python-mock" ,python-mock)
+ ("python-oauth2client" ,python-oauth2client)
+ ("python-pbr" ,python-pbr-1.6.0)
+ ("python-pyyaml" ,python-pyyaml)
+ ("python-uritemplate" ,python-uritemplate)))
+ (home-page "https://arvados.org")
+ (synopsis "Arvados client library")
+ (description "This package provides the arvados module, an API client for
+Arvados. It also includes higher-level functions to help you write Crunch
+scripts, and command-line tools to store and retrieve data in the Keep storage
+server.")
+ (license license:asl2.0)))
+
+(define-public python-schema-salad
+ (package
+ (name "python-schema-salad")
+ (version "5.0.20200416112825")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "schema-salad" version))
+ (sha256
+ (base32
+ "1pm6q266qrw4r0w0vnzhsvqgk5j8b3q61hxg99awhgpjsmcvkmsz"))))
+ (build-system python-build-system)
+ (propagated-inputs
+ `(("python-cachecontrol" ,python-cachecontrol-0.11)
+ ("python-lockfile" ,python-lockfile)
+ ("python-mistune" ,python-mistune)
+ ("python-rdflib" ,python-rdflib)
+ ("python-rdflib-jsonld" ,python-rdflib-jsonld)
+ ("python-requests" ,python-requests)
+ ("python-ruamel.yaml" ,python-ruamel.yaml)
+ ("python-setuptools" ,python-setuptools)
+ ("python-typing-extensions" ,python-typing-extensions)))
+ (native-inputs
+ `(("python-pytest" ,python-pytest)
+ ("python-pytest-runner" ,python-pytest-runner)))
+ (home-page "https://github.com/common-workflow-language/schema_salad")
+ (synopsis "Schema Annotations for Linked Avro Data (SALAD)")
+ (description
+ "Salad is a schema language for describing JSON or YAML structured linked
+data documents. Salad schema describes rules for preprocessing, structural
+validation, and hyperlink checking for documents described by a Salad schema.
+Salad supports rich data modeling with inheritance, template specialization,
+object identifiers, object references, documentation generation, code
+generation, and transformation to RDF. Salad provides a bridge between document
+and record oriented data modeling and the Semantic Web.")
+ (license license:asl2.0)))
diff --git a/gn/packages/ratspub.scm b/gn/packages/ratspub.scm
index 29e1313..b664799 100644
--- a/gn/packages/ratspub.scm
+++ b/gn/packages/ratspub.scm
@@ -1,11 +1,16 @@
(define-module (gn packages ratspub)
#:use-module ((guix licenses) #:prefix license:)
+ #:use-module (guix utils)
+ #:use-module (gnu packages)
#:use-module (guix packages)
#:use-module (guix git-download)
#:use-module (guix build-system python)
#:use-module (gnu packages admin)
- #:use-module (gn packages bioinformatics)
+ #:use-module (gnu packages bioinformatics)
#:use-module (gn packages javascript)
+ #:use-module (gnu packages machine-learning)
+ #:use-module (gnu packages python)
+ #:use-module (gnu packages python-crypto)
#:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz)
#:use-module (gn packages web))
@@ -13,19 +18,27 @@
(define-public ratspub
(package
(name "ratspub")
- (version "0.1")
+ (version "0.3.1")
(source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/chen42/ratspub.git")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "0cm9g38fxpa52458mdmhzhghj5c7b8l3k1b764zs9hdrki5s7wi7"))))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/chen42/ratspub.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1ii3721mqd3dbpjkhqi7yqjd9bqcf0g19kdbb8265pmbfjjsg164"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin (substitute* "server.py"
+ ;; Keep the service running on port 4200
+ (("4201") "4200")
+ ;; Backport to python-keras-2.2.4
+ (("learning_rate") "lr") )
+ #t))))
(build-system python-build-system)
(arguments
- `(#:tests? #f ; no test suite
+ `(#:tests? #f ; no test suite
#:phases
(modify-phases %standard-phases
(delete 'configure)
@@ -34,12 +47,24 @@
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(inetutils (assoc-ref inputs "inetutils")))
- (substitute* "templates/cytoscape.html"
+ (substitute* '("templates/cytoscape.html"
+ "templates/tableview.html"
+ "templates/tableview0.html"
+ "templates/userarchive.html")
(("script src=.*")
"script src=\"/static/cytoscape.min.js\"></script>\n"))
(substitute* "templates/layout.html"
- (("https://stackpath.bootstrapcdn.com/bootstrap/.*")
- "/static/bootstrap.min.css\">\n"))
+ (("https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css.*")
+ "/static/bootstrap.min.css\">\n")
+ (("https://.*.bootstrapcdn.com/bootstrap/4.*/js/bootstrap.min.js.*")
+ "/static/bootstrap.min.js\"></script>\n")
+ (("https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css")
+ "/static/font-awesome.min.css")
+ (("https://code.jquery.com/jquery-3.2.1.slim.min.js.*")
+ "/static/jquery.slim.min.js\"></script>\n")
+ ;(("https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js.*")
+ ; "/static/popper.min.js\"></script>\n")
+ )
(substitute* "ratspub.py"
(("hostname") (string-append inetutils "/bin/hostname"))))
#t))
@@ -51,31 +76,58 @@
(add-after 'install 'install-javascript
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
+ (awesome (assoc-ref inputs "font-awesome"))
+ (bootstrap (assoc-ref inputs "bootstrap"))
(cytoscape (assoc-ref inputs "cytoscape"))
- (bootstrap (assoc-ref inputs "bootstrap")))
+ (jquery (assoc-ref inputs "jquery"))
+ ;(js-popper (assoc-ref inputs "js-popper"))
+ )
+ (symlink (string-append awesome
+ "/share/web/font-awesomecss/font-awesome.min.css")
+ (string-append out "/static/font-awesome.min.css"))
+ (symlink (string-append bootstrap
+ "/share/web/bootstrap/css/bootstrap.min.css")
+ (string-append out "/static/bootstrap.min.css"))
+ (symlink (string-append bootstrap
+ "/share/web/bootstrap/js/bootstrap.min.js")
+ (string-append out "/static/bootstrap.min.js"))
(symlink (string-append cytoscape
"/share/genenetwork2/javascript/cytoscape/cytoscape.min.js")
(string-append out "/static/cytoscape.min.js"))
- (symlink (string-append bootstrap
- "/share/web/bootstrap/css/bootstrap.min.css")
- (string-append out "/static/bootstrap.min.css")))
+ (symlink (string-append jquery
+ "/share/web/jquery/jquery.slim.min.js")
+ (string-append out "/static/jquery.slim.min.js"))
+ ;(symlink (string-append js-popper
+ ; "/share/web/popper/popper.min.js")
+ ; (string-append out "/static/popper.min.js"))
+ )
#t))
(add-after 'install 'wrap-executable
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(path (getenv "PYTHONPATH")))
(wrap-program (string-append out "/server.py")
- `("PATH" ":" prefix (,(dirname (which "edirect.pl"))))
- `("PYTHONPATH" ":" prefix (,path))))
+ `("PATH" ":" prefix (,(dirname (which "edirect.pl"))
+ ,(dirname (which "dirname"))
+ ,(dirname (which "grep"))
+ ,(dirname (which "sed"))))
+ `("PYTHONPATH" ":" prefix (,path))))
#t)))))
(inputs
- `(("edirect" ,edirect-gn)
+ `(("edirect" ,edirect)
("inetutils" ,inetutils)
- ("python-flask" ,python-flask)
- ("python-nltk" ,python-nltk)))
+ ("python-bcrypt" ,python-bcrypt)
+ ("python-flask-sqlalchemy" ,python-flask-sqlalchemy)
+ ("python-keras" ,python-keras-for-ratspub)
+ ("python-nltk" ,python-nltk)
+ ("tensorflow" ,tensorflow)))
(native-inputs
- `(("cytoscape" ,javascript-cytoscape)
- ("bootstrap" ,web-bootstrap)))
+ `(("bootstrap" ,web-bootstrap)
+ ("cytoscape" ,javascript-cytoscape)
+ ("font-awesome" ,web-font-awesome)
+ ("jquery" ,web-jquery)
+ ;("js-popper" ,js-popper) ; empty output
+ ))
(home-page "http://rats.pub/")
(synopsis "Relationship with Addiction Through Searches of PubMed")
(description
@@ -86,4 +138,113 @@ the question \"What do we know about these genes and addiction?\". Data from
@acronym{EBI GWAS, European Bioinformatics Institute Genome-Wide Association
Studies} catalog are also included in the search to better answer this
question.")
- (license #f)))
+ (license license:expat)))
+
+;; We want a copy of python-keras with the AUC optimizer backported.
+;; We skip the tests because we "test in production".
+;; That's a lie. The test suite just takes a long time to run.
+(define-public python-keras-for-ratspub
+ (hidden-package
+ (package
+ (inherit python-keras)
+ (source
+ (origin
+ (inherit (package-source python-keras))
+ (patches (search-patches "keras-auc-optimizer.patch"))))
+ (arguments
+ (substitute-keyword-arguments (package-arguments python-keras)
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (delete 'check))))))))
+
+(define-public hrdp-project
+ (package
+ (name "hrdp-project")
+ (version "0.1")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/noderboarder/hrdp-project")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1ag7jm43p35yh0cqcn53wg4iw7sgfypw10mxq5klxvhgj3r6cf7i"))))
+ (build-system python-build-system)
+ (arguments
+ `(#:tests? #f ; no test suite
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (delete 'build)
+ (add-after 'unpack 'patch-sources
+ (lambda _
+ (substitute* "./app/templates/layout.html"
+ (("https://.*.bootstrapcdn.com/bootstrap/4.*/css/bootstrap.min.css.*")
+ "/static/bootstrap.min.css\">\n")
+ (("https://.*.bootstrapcdn.com/bootstrap/4.*/js/bootstrap.min.js.*")
+ "/static/bootstrap.min.js\"></script>\n")
+ (("https://code.jquery.com/jquery-3.*.slim.min.js.*")
+ "/static/jquery.slim.min.js\"></script>\n")
+ ;(("https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js.*")
+ ; "/static/popper.min.js\"></script>\n")
+ )
+ #t))
+ (replace 'install
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out"))
+ (python (assoc-ref inputs "python")))
+ (delete-file "main.py")
+ (with-output-to-file "main.py"
+ (lambda ()
+ (format #t "#!~a/bin/python
+from app import create_app
+
+app = create_app()
+
+if __name__ == '__main__':
+ app.run(debug=True, port=4222)~%"
+ python)))
+ (chmod "main.py" #o555)
+ (copy-recursively "." out))
+ #t))
+ (add-after 'install 'install-javascript
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out"))
+ (bootstrap (assoc-ref inputs "bootstrap"))
+ (jquery (assoc-ref inputs "jquery"))
+ ;(js-popper (assoc-ref inputs "js-popper"))
+ )
+ (symlink (string-append bootstrap
+ "/share/web/bootstrap/css/bootstrap.min.css")
+ (string-append out "/app/static/bootstrap.min.css"))
+ (symlink (string-append bootstrap
+ "/share/web/bootstrap/js/bootstrap.min.js")
+ (string-append out "/app/static/bootstrap.min.js"))
+ (symlink (string-append jquery
+ "/share/web/jquery/jquery.slim.min.js")
+ (string-append out "/app/static/jquery.slim.min.js"))
+ ;(symlink (string-append js-popper
+ ; "/share/web/popper/popper.min.js")
+ ; (string-append out "/static/popper.min.js"))
+ )
+ #t))
+ (add-after 'install 'wrap-executable
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out"))
+ (path (getenv "PYTHONPATH")))
+ (wrap-program (string-append out "/main.py")
+ `("PYTHONPATH" ":" prefix (,path))))
+ #t)))))
+ (inputs
+ `(("python" ,python)
+ ("python-flask-sqlalchemy" ,python-flask-sqlalchemy)))
+ (native-inputs
+ `(("bootstrap" ,web-bootstrap)
+ ("jquery" ,web-jquery)
+ ;("js-popper" ,js-popper) ; empty output
+ ))
+ (home-page "https://github.com/noderboarder/hrdp-project")
+ (synopsis "")
+ (description "")
+ (license license:expat)))
diff --git a/gn/services/archive-pubmed.service b/gn/services/archive-pubmed.service
new file mode 100644
index 0000000..fd00b71
--- /dev/null
+++ b/gn/services/archive-pubmed.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=Download PubMed Archives
+After=network-online.target
+Wants=network-online.target
+AssertPathExists=/export2/PubMed
+
+[Service]
+ExecStart=/usr/local/guix-profiles/ratspub/bin/archive-pubmed
+Environment="EDIRECT_PUBMED_MASTER=/export2/PubMed" "PERL_LWP_SSL_CA_FILE=/etc/ssl/certs/ca-certificates.crt" "PATH=/usr/local/guix-profiles/ratspub/bin:/usr/sbin:/usr/bin:/sbin:/bin:/sbin:/usr/sbin"
+User=hchen
+
+[Install]
+WantedBy=multi-user.target
diff --git a/gn/services/archive-pubmed.timer b/gn/services/archive-pubmed.timer
new file mode 100644
index 0000000..4bb27ba
--- /dev/null
+++ b/gn/services/archive-pubmed.timer
@@ -0,0 +1,9 @@
+[Unit]
+Description=Daily PubMed downloads
+
+[Timer]
+OnBootSec=5h
+OnUnitInactiveSec=15h
+
+[Install]
+WantedBy=default.target
diff --git a/gn/services/bnw-README b/gn/services/bnw-README
index ab7de53..d70b7fc 100644
--- a/gn/services/bnw-README
+++ b/gn/services/bnw-README
@@ -6,8 +6,8 @@ $ cd guix-bioinformatics && git pull
# systemctl enable --now bnw.service
for testing changes to the container, you'll want to do the following (or thereabouts):
-$ guix system container gn/services/GN1-container.scm --share=/home/bnw/server=/srv/http --network
-$ sudo -E $(guix system container gn/services/GN1-container.scm --share=/home/bnw/server=/srv/http --network)
+$ guix system container gn/servicebnwN1-container.scm --network
+$ sudo -E $(guix system container gn/services/bnw-container.scm --network)
for running the service:
see included bnw.service
diff --git a/gn/services/bnw-container.scm b/gn/services/bnw-container.scm
index 8463a75..39da38d 100644
--- a/gn/services/bnw-container.scm
+++ b/gn/services/bnw-container.scm
@@ -21,10 +21,6 @@
(match-lambda
(($ <bnw-configuration> package deploy-directory port)
#~(begin
- (use-modules (guix build utils))
- (when (directory-exists? #$deploy-directory)
- ;; Not 'delete-file-recursively' because the directory might be empty.
- (system* "rm" "-r" #$(string-append deploy-directory "/*")))
(mkdir-p #$deploy-directory)
(copy-recursively #$package #$deploy-directory)
(invoke #$(file-append coreutils "/bin/chmod") "a+w"
diff --git a/gn/services/bnw.service b/gn/services/bnw.service
index 5ba8f3f..6ac99a1 100644
--- a/gn/services/bnw.service
+++ b/gn/services/bnw.service
@@ -3,7 +3,7 @@ Description=BNW web server
Wants=guix-daemon.service
[Service]
-Environment="BNW_COMMAND=$(/bin/su -l bnw -c '/var/guix/profiles/per-user/bnw/current-guix/bin/guix system container /home/bnw/guix-bioinformatics/gn/services/bnw-container.scm --share=/home/bnw/server=/srv/http --share=/home/bnw/server/var-log=/var/log --network')"
+Environment="BNW_COMMAND=$(/bin/su -l bnw -c '/var/guix/profiles/per-user/bnw/current-guix/bin/guix system container /home/bnw/guix-bioinformatics/gn/services/bnw-container.scm --share=/home/bnw/server/var-log=/var/log --network')"
ExecStart=/bin/bash -c '${BNW_COMMAND}'
[Install]
diff --git a/gn/services/genenetwork.scm b/gn/services/genenetwork.scm
index 0978cd2..4693152 100644
--- a/gn/services/genenetwork.scm
+++ b/gn/services/genenetwork.scm
@@ -2,13 +2,13 @@
(use-modules (gnu)
(gn packages genenetwork)
- (gn packages python)
+ (gn packages python24)
(gn packages web))
(use-service-modules web)
(use-package-modules python)
(define %mod-python-path
- (file-append mod-python "/lib/python2.7/site-packages"))
+ (file-append mod-python "/lib/python2.4/site-packages"))
(operating-system
(host-name "genenetwork")
@@ -22,15 +22,15 @@
;; No firmware for VMs
(firmware '())
- (packages (cons* python-2
+ (packages (cons* python-2.4
mod-python
- python2-qtlreaper
- python2-htmlgen-gn
- python2-json-GN1
- python2-piddle
- python2-pyx-GN1
- python2-pyxlwriter
- python2-svg-GN1
+ python24-qtlreaper
+ ;python24-htmlgen-gn
+ python24-json-GN1
+ python24-piddle
+ python24-pyx-GN1
+ python24-pyxlwriter
+ python24-svg-GN1
%base-packages))
(services (list (service httpd-service-type
@@ -38,7 +38,7 @@
(config
(httpd-config-file
(server-name "www.genenetwork.org")
- (document-root (file-append genenetwork "/web"))
+ (document-root (file-append genenetwork1 "/web"))
(listen '("8811"))
(modules (cons*
(httpd-module
@@ -46,8 +46,8 @@
(file (file-append mod-python "/modules/mod_python.so")))
%default-httpd-modules))
(extra-config (list "\
-PythonPath \"sys.path+['" %mod-python-path "', '" (file-append genenetwork "/web/webqtl") "']\"
-<Directory " (file-append genenetwork "/web/webqtl") ">
+PythonPath \"sys.path+['" %mod-python-path "', '" (file-append genenetwork1 "/web/webqtl") "']\"
+<Directory " (file-append genenetwork1 "/web/webqtl") ">
SetHandler python-program
PythonHandler mod_python.publisher
PythonAutoReload Off