From ec9a0ae00428f944717ff5e4d97da52a500647ce Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Sun, 15 Mar 2020 04:33:59 -0500 Subject: WIP: update ratspub to 0.2-1.1b516ee As a package it is ready, but it tries to write to files in it's directory, which is in the store, meaning the service will need to be rewritten. --- gn/packages/javascript.scm | 24 ++++++ gn/packages/ratspub.scm | 182 +++++++++++++++++++++++++++------------------ 2 files changed, 133 insertions(+), 73 deletions(-) diff --git a/gn/packages/javascript.scm b/gn/packages/javascript.scm index 79a8060..e6d1d7e 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-poppler + (package + (name "js-poppler") + (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/poppler.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/ratspub.scm b/gn/packages/ratspub.scm index 290b9e2..3394592 100644 --- a/gn/packages/ratspub.scm +++ b/gn/packages/ratspub.scm @@ -6,87 +6,123 @@ #:use-module (gnu packages admin) #:use-module (gn packages bioinformatics) #:use-module (gn packages javascript) + #:use-module (gnu packages time) + #:use-module (gnu packages python-crypto) #:use-module (gnu packages python-web) #:use-module (gnu packages python-xyz) #:use-module (gn packages web)) (define-public ratspub - (package - (name "ratspub") - (version "0.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")))) - (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* (#:key inputs outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out")) - (inetutils (assoc-ref inputs "inetutils"))) - (substitute* "templates/cytoscape.html" - (("script src=.*") - "script src=\"/static/cytoscape.min.js\">\n")) - (substitute* "templates/layout.html" - (("https://stackpath.bootstrapcdn.com/bootstrap/.*") - "/static/bootstrap.min.css\">\n")) - (substitute* "ratspub.py" - (("hostname") (string-append inetutils "/bin/hostname")))) - #t)) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (copy-recursively "." out)) - #t)) - (add-after 'install 'install-javascript - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out")) - (cytoscape (assoc-ref inputs "cytoscape")) - (bootstrap (assoc-ref inputs "bootstrap"))) - (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"))) - #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")) - ,(dirname (which "dirname")) - ,(dirname (which "grep")) - ,(dirname (which "sed")))) - `("PYTHONPATH" ":" prefix (,path)))) - #t))))) - (inputs - `(("edirect" ,edirect-gn) - ("inetutils" ,inetutils) - ("python-flask" ,python-flask) - ("python-nltk" ,python-nltk))) - (native-inputs - `(("cytoscape" ,javascript-cytoscape) - ("bootstrap" ,web-bootstrap))) - (home-page "http://rats.pub/") - (synopsis "Relationship with Addiction Through Searches of PubMed") - (description - "RatsPub searches PubMed to find sentences that contain the query terms + (let ((commit "1b516ee692248f4cd75570d9750b14f78554b41f") + (revision "1")) + (package + (name "ratspub") + (version (git-version "0.2" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/chen42/ratspub.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "16zr89993h1idkazradivm9yjgl695wdr34d2qbwj4nmaxfrg8dy")))) + (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* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (inetutils (assoc-ref inputs "inetutils"))) + (substitute* '("templates/cytoscape.html" + "templates/tableview.html" + "templates/tableview0.html" + "templates/userarchive.html") + (("script src=.*") + "script src=\"/static/cytoscape.min.js\">\n")) + (substitute* "templates/layout.html" + (("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\">\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\">\n") + (("https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js.*") + "/static/poppler.js\">\n")) + (substitute* "ratspub.py" + (("hostname") (string-append inetutils "/bin/hostname")))) + #t)) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (copy-recursively "." out)) + #t)) + (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")) + (jquery (assoc-ref inputs "jquery")) + (js-poppler (assoc-ref inputs "js-poppler"))) + (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 jquery + "/share/web/jquery/jquery.slim.min.js") + (string-append out "/static/jquery.slim.min.js")) + (symlink (string-append js-poppler + "/share/web/poppler/poppler.min.js") + (string-append out "/static/poppler.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")) + ,(dirname (which "dirname")) + ,(dirname (which "grep")) + ,(dirname (which "sed")))) + `("PYTHONPATH" ":" prefix (,path)))) + #t))))) + (inputs + `(("edirect" ,edirect-gn) + ("inetutils" ,inetutils) + ("python-bcrypt" ,python-bcrypt) + ("python-flask" ,python-flask) + ("python-flask-sqlalchemy" ,python-flask-sqlalchemy) + ("python-nltk" ,python-nltk) + ("python-pytz" ,python-pytz))) + (native-inputs + `(("bootstrap" ,web-bootstrap) + ("cytoscape" ,javascript-cytoscape) + ("font-awesome" ,web-font-awesome) + ("jquery" ,web-jquery) + ("js-poppler" ,js-poppler))) + (home-page "http://rats.pub/") + (synopsis "Relationship with Addiction Through Searches of PubMed") + (description + "RatsPub searches PubMed to find sentences that contain the query terms (i.e., gene symbols) and drug addiction-related keywords. These gene-keyword relationships are presented as an interactive graph that can efficiently answer 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 #f)))) -- cgit v1.2.3