about summary refs log tree commit diff
path: root/gn
diff options
context:
space:
mode:
Diffstat (limited to 'gn')
-rw-r--r--gn/packages/ratspub.scm152
-rw-r--r--gn/services/ratspub-container.scm129
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