about summary refs log tree commit diff
path: root/gn/packages/bnw.scm
diff options
context:
space:
mode:
authorPjotr Prins2019-08-01 08:59:33 -0500
committerPjotr Prins2019-08-01 08:59:33 -0500
commita5a1e75c1379d9c26c0a0f9dbb9fb069c7bf7f18 (patch)
tree198824fa4435adb7bc850f129fff600d607eaa22 /gn/packages/bnw.scm
parentfd06a7a744cb2368d410e131b4f8c6bc7738cc94 (diff)
parent25db4463972bc8729436d84d8be003ea7eacad71 (diff)
downloadguix-bioinformatics-a5a1e75c1379d9c26c0a0f9dbb9fb069c7bf7f18.tar.gz
Merge branch 'master' of gitlab.com:genenetwork/guix-bioinformatics
Diffstat (limited to 'gn/packages/bnw.scm')
-rw-r--r--gn/packages/bnw.scm118
1 files changed, 118 insertions, 0 deletions
diff --git a/gn/packages/bnw.scm b/gn/packages/bnw.scm
new file mode 100644
index 0000000..2c34256
--- /dev/null
+++ b/gn/packages/bnw.scm
@@ -0,0 +1,118 @@
+(define-module (gn packages bnw)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix packages)
+  #:use-module (guix git-download)
+  #:use-module (guix build-system trivial)
+  #:use-module (gnu packages bash)
+  #:use-module (gn packages graphviz)
+  #:use-module (gn packages javascript)
+  #:use-module (gn packages maths)
+  #:use-module (gnu packages python)
+  #:use-module (gn packages web))
+
+(define-public bnw
+  (let ((commit "eb6b002b924694808384f1a8d7c6d1121806ae04")
+        (revision "1"))
+    (package
+      (name "bnw")
+      (version (git-version "1.22" revision commit)) ; June 28, 2019
+      (source (origin
+               (method git-fetch)
+               (uri (git-reference
+                     (url "https://github.com/ziejd2/BNW.git")
+                     (commit commit)))
+               (file-name (git-file-name name version))
+               (sha256
+                (base32
+                 "10qwykp2zcyxih6a52icvy30ps69qk4v3jgirmdpw1l15zi4p2wq"))))
+      (build-system trivial-build-system)
+      (arguments
+       `(#:modules ((guix build utils))
+         #:builder
+           (begin
+             (use-modules (guix build utils))
+             (let* ((out      (assoc-ref %outputs "out"))
+                    (source   (assoc-ref %build-inputs "source"))
+                    (bash     (assoc-ref %build-inputs "bash"))
+                    (graphviz (assoc-ref %build-inputs "graphviz"))
+                    (octave   (assoc-ref %build-inputs "octave"))
+                    (python   (assoc-ref %build-inputs "python"))
+                    (jquery (assoc-ref %build-inputs "jquery"))
+                    (awesome (assoc-ref %build-inputs "awesome"))
+                    (cyto (assoc-ref %build-inputs "cytoscape"))
+                    (cyto2 (assoc-ref %build-inputs "cytoscape-2"))
+                    (cs-dagre (assoc-ref %build-inputs "cyto-dagre"))
+                    (d3js (assoc-ref %build-inputs "d3js"))
+                    (d3js-multi (assoc-ref %build-inputs "d3js-multi"))
+                    (dagre (assoc-ref %build-inputs "dagre"))
+                    (lodash (assoc-ref %build-inputs "lodash"))
+                    (canvas-toblob (assoc-ref %build-inputs "canvas-toblob"))
+                    (filesaver (assoc-ref %build-inputs "filesaver"))
+                    (panzoom (assoc-ref %build-inputs "panzoom"))
+                    (js-path "/share/genenetwork2/javascript/"))
+               (copy-recursively source out)
+               (for-each (lambda (file)
+                 (patch-shebang file
+                   (list (string-append bash "/bin")
+                         (string-append octave "/bin")
+                         (string-append python "/bin"))))
+                 (find-files out ".*"))
+               (with-directory-excursion out
+                 (substitute*
+                   (append '("home.php")
+                           (find-files "sourcecodes" ".php")
+                           (find-files "sourcecodes/run_scripts" ".*"))
+                   (("/usr/bin/dot") (string-append graphviz "/bin/dot")))
+                 (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"))))))))
+      (native-inputs `(("source" ,source)))
+      (inputs
+       `(("bash" ,bash-minimal)
+         ("graphviz" ,graphviz-2.26)
+         ("octave" ,octave-3.4.3)
+         ("python" ,python-2)
+         ("jquery" ,web-jquery)
+         ("awesome" ,web-font-awesome)
+         ("cytoscape" ,javascript-cytoscape)
+         ("cytoscape-2" ,javascript-cytoscape-2)
+         ("d3js" ,javascript-d3js-4)
+         ("d3js-multi" ,javascript-d3js-multi)
+         ("dagre" ,javascript-dagre)
+         ("lodash" ,javascript-lodash)
+         ("canvas-toblob" ,javascript-canvas-toblob)
+         ("filesaver" ,javascript-filesaver)
+         ("cyto-dagre" ,javascript-cytoscape-dagre)
+         ("panzoom" ,javascript-cytoscape-panzoom)))
+      (home-page "http://compbio.uthsc.edu/BNW/")
+      (synopsis "Bayesian Network Webserver")
+      (description "This contains the code for the @dfn{Bayesian Network Webserver} (BNW).")
+      (license (list license:gpl2
+                     license:gpl2+
+                     license:lgpl2.1+)))))