aboutsummaryrefslogtreecommitdiff
path: root/gn/services/genome-browser.scm
diff options
context:
space:
mode:
authorEfraim Flashner2021-04-29 12:45:22 +0300
committerEfraim Flashner2021-04-30 14:00:29 +0300
commit7d8b95546ad7a90ccc9175e7a71a198f05f1b359 (patch)
tree8fcd0f1d56349ee417e1374584a58f24e9552cf5 /gn/services/genome-browser.scm
parentb4887cef698a44fd79a55a0f1f0a16cb8d7e7c01 (diff)
downloadguix-bioinformatics-7d8b95546ad7a90ccc9175e7a71a198f05f1b359.tar.gz
gn: genome browser: nearly have the graph working.
Diffstat (limited to 'gn/services/genome-browser.scm')
-rw-r--r--gn/services/genome-browser.scm92
1 files changed, 65 insertions, 27 deletions
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
<Directory " ucsc-genome-browser "/html>
- Options +Includes
- SSILegacyExprParser on
+ Options +Includes +FollowSymLinks +Indexes
+ AllowOverride None
+ <IfModule mod_authz_host.c>
+ Require all granted
+ SSILegacyExprParser on
+ </IfModule>
</Directory>
- ScriptAlias /cgi-bin/ " ucsc-genome-browser "/cgi-bin/
+ ScriptAlias /cgi-bin " ucsc-genome-browser "/cgi-bin
<Directory " 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
</Directory>
<Directory /var/www/html/trash>
@@ -94,6 +132,6 @@ ScriptSock /var/run/cgid.sock
</Directory>
</VirtualHost>")))))))))
-;; 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