diff options
author | Shepherd on Tux02 | 2024-06-21 04:51:09 -0500 |
---|---|---|
committer | Shepherd on Tux02 | 2024-06-21 04:51:17 -0500 |
commit | d5aa746d3f7ecf46fcab2c527fb2d033a77c5143 (patch) | |
tree | 3b122d45d1ca6c5ba62ea8a05c2270c6e27996f2 /gn | |
parent | fe579ad20464adae86939345c214cc41028825f3 (diff) | |
download | guix-bioinformatics-d5aa746d3f7ecf46fcab2c527fb2d033a77c5143.tar.gz |
ratspub: remove definitions as they are replaced by genecup
Diffstat (limited to 'gn')
-rw-r--r-- | gn/packages/ratspub.scm | 152 | ||||
-rw-r--r-- | gn/services/ratspub-container.scm | 129 |
2 files changed, 0 insertions, 281 deletions
diff --git a/gn/packages/ratspub.scm b/gn/packages/ratspub.scm index d797e8a..c530979 100644 --- a/gn/packages/ratspub.scm +++ b/gn/packages/ratspub.scm @@ -20,135 +20,6 @@ #:use-module (gn packages python) #:use-module (gn packages web)) -(define-public ratspub - (package - (name "ratspub") - (version "0.4.5") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/chen42/ratspub") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - ;; Keep the service running on port 4200. - (modules '((guix build utils))) - (snippet - '(begin (substitute* "server.py" - (("4201") "4200")))) - (sha256 - (base32 - "1y89rkqdxcnl2jjsy1wfp9p8qkgh6nzqs1r37wyhc8y7r3dva7kf")))) - (build-system python-build-system) - (arguments - `(#:tests? #f ; no test suite - #:phases - (modify-phases %standard-phases - (delete 'configure) - (delete 'build) - (add-after 'unpack 'make-files-writable - (lambda _ - (for-each make-file-writable (find-files ".")))) - (add-after 'unpack 'patch-datadir - (lambda _ - (substitute* "server.py" - (("^datadir.*") "datadir = \"/export/ratspub/\"\n")))) - (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") - (("https.*FileSaver.js.*\\\">") "/static/FileSaver.js\">") - (("https.*cytoscape-svg.js.*\\\">") "/static/cytoscape-svg.js\">") - (("https.*cytoscape.min.js.*\\\">") "/static/cytoscape.min.js\">")) - (substitute* "templates/layout.html" - (("https.*bootstrap.min.css.*\\\">") "/static/bootstrap.min.css\">") - (("https.*4.*bootstrap.min.js.*\\\">") "/static/bootstrap.min.js\">") - (("https.*4.7.0/css/font-awesome.min.css") "/static/font-awesome.min.css") - (("https.*jquery-3.2.1.slim.min.js.*\\\">") "/static/jquery.slim.min.js\">") - (("https.*1.12.9/umd/popper.min.js.*\\\">") "/static/popper.min.js\">")) - (substitute* "ratspub.py" - (("hostname") (string-append inetutils "/bin/hostname")))))) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (copy-recursively "." out)))) - (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")) - (cytoscape-svg (assoc-ref inputs "cytoscape-svg")) - (jquery (assoc-ref inputs "jquery")) - (js-filesaver (assoc-ref inputs "js-filesaver")) - (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 cytoscape-svg - "/share/javascript/cytoscape-svg.js") - (string-append out "/static/cytoscape-svg.js")) - (symlink (string-append jquery - "/share/web/jquery/jquery.slim.min.js") - (string-append out "/static/jquery.slim.min.js")) - (symlink (string-append js-filesaver - "/share/javascript/FileSaver.js") - (string-append out "/static/FileSaver.js")) - (symlink (string-append js-popper - "/share/javascript/popper.min.js") - (string-append out "/static/popper.min.js"))))) - (add-after 'install 'wrap-executable - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out")) - (path (getenv "GUIX_PYTHONPATH"))) - (wrap-program (string-append out "/server.py") - `("PATH" ":" prefix (,(dirname (which "edirect.pl")) - ,(dirname (which "dirname")) - ,(dirname (which "grep")) - ,(dirname (which "sed")))) - `("GUIX_PYTHONPATH" ":" prefix (,path))))))))) - (inputs - `(("edirect" ,edirect) - ("inetutils" ,inetutils) - ("python-bcrypt" ,python-bcrypt) - ("python-flask-sqlalchemy" ,python-flask-sqlalchemy) - ("python-keras" ,python-keras-for-ratspub) - ("python-nltk" ,python-nltk) - ("tensorflow" ,tensorflow))) - (native-inputs - `(("bootstrap" ,web-bootstrap) - ("cytoscape" ,javascript-cytoscape-3.17) - ;("cytoscape-svg" ,js-cytoscape-svg-0.3.1) ; TODO - ("cytoscape-svg" ,js-cytoscape-svg-vendor-0.3.1) - ("font-awesome" ,web-font-awesome) - ("jquery" ,web-jquery) - ("js-filesaver" ,js-filesaver-1.3.2) - ("js-popper" ,js-popper-1.12.9))) - (home-page "https://rats.pub/") - (synopsis "Relationship with Addiction Through Searches of PubMed") - (description - "RatsPub is a tool to efficiently and comprehensively answer the question -\"What do we know about these genes and addiction?\". RatsPub answers this -question by searching PubMed to find sentences containing the query terms (i.e., -gene symbols) and over 300 drug addiction-related keywords that are organized -into six categories. Data from @url{https://www.ebi.ac.uk/gwas/, -@acronym{NHGRI-EBI GWAS, European Bioinformatics Institute Genome-Wide -Association Studies}} catalog are also included in the search. These -gene-keyword relationships are presented as an interactive graph and a table.") - (license license:expat))) - (define use-corrected-inputs (package-input-rewriting/spec ;; Tensorflow-native provides much improved speeds. python-h5py@2 provides @@ -156,29 +27,6 @@ gene-keyword relationships are presented as an interactive graph and a table.") `(("tensorflow" . ,(const tensorflow-native)) ("python-h5py" . ,(const python-h5py-2))))) -(define-public ratspub-with-tensorflow-native - (package - (inherit - (tensowflow-native-instead-of-tensorflow ratspub)) - (name "ratspub-with-tensorflow-native"))) - -;; 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 python-keras-no-tests (hidden-package (package diff --git a/gn/services/ratspub-container.scm b/gn/services/ratspub-container.scm deleted file mode 100644 index 1bf9fc6..0000000 --- a/gn/services/ratspub-container.scm +++ /dev/null @@ -1,129 +0,0 @@ -(define-module (gn services ratspub-container)) - -(use-modules (gnu) - (gn packages ratspub) - (guix download) - (guix modules) - (guix packages) - (guix records) - (ice-9 match)) -(use-service-modules shepherd) -(use-package-modules certs compression) - -(define-record-type* <ratspub-configuration> - ratspub-configuration - make-ratspub-configuration - ratspub-configuration? - (package ratspub-configuration-package ; package - (default ratspub))) - -(define %punkt.zip - (origin - (method url-fetch) - (uri "https://github.com/nltk/nltk_data/raw/b63a469d2f83a3cc9a2efcfe36915839d4e11d42/packages/tokenizers/punkt.zip") - (sha256 - (base32 "0i01c5qzn1p8dxyrpx4hry2n6x6b8rgcq1sck091n0jp036f6x4s")))) - -(define ratspub-activation - (match-lambda - (($ <ratspub-configuration> package) - #~(begin - (let ((nltk_data "/var/cache/nltk_data/tokenizers") - (data_dir "/export/ratspub")) - (unless (file-exists? "/export2/PubMed") - (mkdir-p "/export2/PubMed")) - (unless (file-exists? nltk_data) - (begin - ;; The correct way would be to use python-nltk to download the data - ;; python3 -m nltk.downloader -d /var/cache/nltk_data punkt - (mkdir-p nltk_data) - (chdir nltk_data) - (invoke #$(file-append unzip "/bin/unzip") "-q" #$%punkt.zip))) - (unless (file-exists? (string-append data_dir "/userspub.sqlite")) - (begin - (install-file #$(file-append package "/userspub.sqlite") data_dir) - (chmod (string-append data_dir "/userspub.sqlite") #o554)))))))) - -(define ratspub-shepherd-service - (match-lambda - (($ <ratspub-configuration> package) - (with-imported-modules (source-module-closure - '((gnu build shepherd) - (gnu system file-systems))) - (list (shepherd-service - (provision '(ratspub)) - (requirement '(networking)) - (modules '((gnu build shepherd) - (gnu system file-systems))) - (start #~(make-forkexec-constructor/container - (list #$(file-append package "/server.py")) - ;; Needs to run from the directory it is located in. - #:directory #$package - #:log-file "/var/log/ratspub.log" - ;; We don't need to set TMPDIR because we're inside a container. - #:environment-variables - '("EDIRECT_PUBMED_MASTER=/export2/PubMed" - "NLTK_DATA=/var/cache/nltk_data" - "PERL_LWP_SSL_CA_FILE=/etc/ssl/certs/ca-certificates.crt") - #:mappings (list (file-system-mapping - (source "/export2/PubMed") - (target source) - (writable? #t)) - (file-system-mapping - (source "/export/ratspub") - (target source) - (writable? #t)) - (file-system-mapping - (source "/var/cache/nltk_data") - (target source)) - (file-system-mapping - (source "/etc/ssl/certs") - (target source))))) - (stop #~(make-kill-destructor)))))))) - -(define ratspub-service-type - (service-type - (name 'ratspub) - (extensions - (list - (service-extension shepherd-root-service-type - ratspub-shepherd-service) - (service-extension activation-service-type - ratspub-activation) - ;; Make sure we get all the dependencies of RatsPub. - (service-extension profile-service-type - (compose list ratspub-configuration-package)))) - (default-value (ratspub-configuration)) - (description - "Run a RatsPub Webserver."))) - -(operating-system - (host-name "ratspub") - (timezone "Etc/UTC") - (locale "en_US.utf8") - - (bootloader (bootloader-configuration - (bootloader grub-bootloader) - (targets '("does-not-matter")))) - (file-systems (list (file-system - (device "does-not-matter") - (mount-point "/") - (type "does-not-matter")))) - ;; TODO: A more minimal kernel for use in a docker image - ;; (kernel linux-libre-vm) - ;; No firmware for VMs. - (firmware '()) - (packages (list nss-certs)) - - (services (list (service ratspub-service-type - (ratspub-configuration - ;; ratspub for docker, ratspub-with-tensorflow-native for architecture specific speed optimizations. - ;(package ratspub)))))) - (package ratspub-with-tensorflow-native)))))) - -;; guix system container -L /path/to/guix-bioinformatics/ -L /path/to/guix-past/modules/ /path/to/guix-bioinformatics/gn/services/ratspub-container.scm --network --share=/export2/PubMed=/export2/PubMed --share=/export/ratspub=/export/ratspub -;; For docker it isn't necessary to list the shared folders at build time. -;; guix system docker-image -L /path/to/guix-bioinformatics/ -L /path/to/guix-past/modules/ /path/to/guix-bioinformatics/gn/services/ratspub-container.scm --network -;; Docker instructions: -;; docker load --input ratspub-docker-image.tar.gz -;; docker run -d --privileged --net=host --name ratspub --volume /path/to/PubMed:/export2/PubMed guix |