From 7d8b95546ad7a90ccc9175e7a71a198f05f1b359 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Thu, 29 Apr 2021 12:45:22 +0300 Subject: gn: genome browser: nearly have the graph working. --- gn/services/genome-browser.scm | 92 +++++++++++++++++++++++++++++------------- 1 file changed, 65 insertions(+), 27 deletions(-) (limited to 'gn/services') diff --git a/gn/services/genome-browser.scm b/gn/services/genome-browser.scm index 58c8e4a..7f7ffc0 100644 --- a/gn/services/genome-browser.scm +++ b/gn/services/genome-browser.scm @@ -1,30 +1,59 @@ ;; See dockerfile for some clarification about choices: ;; https://github.com/icebert/docker_ucsc_genome_browser/blob/master/Dockerfile +;; http://genome.ucsc.edu/goldenPath/help/mirrorManual.html (define-module (gn services genome-browser)) (use-modules (gnu) - (gn packages bioinformatics) - ) -(use-service-modules web) + (guix packages) + (gn packages bioinformatics)) +(use-service-modules + databases + web) +(use-package-modules + bash + databases + ghostscript + wget) (define %hg.conf (mixed-text-file "hg.conf" "browser.documentRoot=" ucsc-genome-browser "/html\n" - "db.host=gbdb\n" - "db.user=admin\n" - "db.password=admin\n" + "db.host=localhost\n" + "db.user=readonly\n" + "db.password=access\n" "db.trackDb=trackDb\n" - "defaultGenome=Human\n" + "gbdbLoc1=/gbdb/\n" + "gbdbLoc2=http://hgdownload.soe.ucsc.edu/gbdb/\n" + ;# To disable on-the-fly loading of mysql data, comment out these lines. + "slow-db.host=genome-mysql.soe.ucsc.edu\n" + "slow-db.user=genomep\n" + "slow-db.password=password\n" + "defaultGenome=Mouse\n" "central.db=hgcentral\n" - "central.host=gbdb\n" - "central.user=admin\n" - "central.password=admin\n" + "central.host=localhost\n" + "central.socket=/run/mysqld/mysqld.sock\n" ; default for mysql service + "central.user=readwrite\n" + "central.password=update\n" "central.domain=\n" "backupcentral.db=hgcentral\n" - "backupcentral.host=gbdb\n" - "backupcentral.user=admin\n" - "backupcentral.password=admin\n" - "backupcentral.domain=\n")) + "backupcentral.host=localhost\n" + "backupcentral.user=readwrite\n" + "backupcentral.password=update\n" + "backupcentral.domain=\n" + "freeType=on\n" + "freeTypeDir=" gs-fonts "/share/fonts/type1/ghostscript\n" + "hgc.ghostscriptPath=" ghostscript "/bin/gs\n" ; needed? + )) + +(define %startup-script + (mixed-text-file "create_databases.sh" + wget "/bin/wget http://hgdownload.soe.ucsc.edu/admin/hgcentral.sql\n" + bash-minimal "/bin/sh " (package-source ucsc-genome-browser) "/src/product/ex.MySQLUserPerms.sh\n" + mariadb "/bin/mysql -e \"create database hgcentral;\" mysql\n" + mariadb "/bin/mysql hgcentral < hgcentral.sql\n" + coreutils-minimal "/bin/mkdir -p /var/www/html/trash\n" + coreutils-minimal "/bin/chown -R httpd:httpd /var/www\n" + )) ;; TODO: create 'daily clean' mcron scripts. ;; /var/www/html/trash needs to be created and owned by httpd:httpd @@ -42,13 +71,19 @@ (file-systems %base-file-systems) ;; No firmware for VMs (firmware '()) - (packages (cons* %base-packages)) + (packages (cons* mariadb ; for create-db script + %base-packages)) (services - (list (service httpd-service-type + (list (service mysql-service-type) + (service special-files-service-type + `(("/root/create_hgcentral" ,%startup-script) + ("/var/lib/genome/hg.conf" ,%hg.conf))) + (service httpd-service-type (httpd-configuration (config (httpd-config-file (document-root (file-append ucsc-genome-browser "/html")) + (server-name "Genome_Browser") (listen (list (number->string ucsc-genome-browser-port))) (modules (cons* @@ -68,22 +103,25 @@ ScriptSock /var/run/cgid.sock XBitHack On DocumentRoot " ucsc-genome-browser "/html Alias /bin " ucsc-genome-browser "/bin - Alias /cgi-bin " ucsc-genome-browser "/cgi-bin - #Alias /cgi-bin/hg.conf " %hg.conf " # this doesn't seem to work + #Alias /cgi-bin " ucsc-genome-browser "/cgi-bin # causes cgi scripts to fail to render Alias /htdocs " ucsc-genome-browser "/htdocs - Options +Includes - SSILegacyExprParser on + Options +Includes +FollowSymLinks +Indexes + AllowOverride None + + Require all granted + SSILegacyExprParser on + - ScriptAlias /cgi-bin/ " ucsc-genome-browser "/cgi-bin/ + ScriptAlias /cgi-bin " ucsc-genome-browser "/cgi-bin AllowOverride None - Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch - #Order allow,deny - #Allow from all - SetHandler cgi-script + Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch +Includes +FollowSymlinks + Order allow,deny + #SetHandler cgi-script Require all granted + Allow from all @@ -94,6 +132,6 @@ ScriptSock /var/run/cgid.sock "))))))))) -;; guix system container -L /path/to/guix-past/modules/ -L /path/to/guix-bioinformatics/ /path/to/guix-bioinformatics/gn/services/genome-browser.scm --network -;; ALSO need to share in the external database +;; guix system container -L /path/to/guix-past/modules/ -L /path/to/guix-bioinformatics/ /path/to/guix-bioinformatics/gn/services/genome-browser.scm --network ;--expose=/path/to/gbdb=/gbdb +;; ALSO need to share in the external database? ;; xdg-open http://localhost:4321 -- cgit v1.2.3