about summary refs log tree commit diff
path: root/gn
diff options
context:
space:
mode:
Diffstat (limited to 'gn')
-rw-r--r--gn/data/hits.scm13
-rw-r--r--gn/runner/gemma.scm29
2 files changed, 40 insertions, 2 deletions
diff --git a/gn/data/hits.scm b/gn/data/hits.scm
index f0a24f3..5108bd0 100644
--- a/gn/data/hits.scm
+++ b/gn/data/hits.scm
@@ -13,9 +13,18 @@
   #:use-module (web gn-uri)
 
   #:export (
-            get-next-hit-for-precompute
+            get-precompute-hit
+            set-precompute-hit-status!
             ))
 
-(define (get-next-hit-for-precompute db prev-id)
+(define (get-precompute-hit db prev-id)
   (dbi-query db (string-append "select Locus, DataId, ProbeSetId, ProbeSetFreezeId from ProbeSetXRef where DataId>" (int-to-string prev-id) " AND Locus_old is NULL ORDER BY DataId LIMIT 1"))
   (get-row db))
+
+(define (set-precompute-hit-status! db data-id-str status-str)
+  "Set status of precompute record - typically 'RUN' or 'NON-BXD'.
+This is a temporary measure to get precompute going.
+Note we are counting on automated MariaDB transactions to not compete."
+  (dbi-query db (string-append "UPDATE ProbeSetXRef SET Locus_old=\"" status-str "\" WHERE DataId=" data-id-str " AND Locus_old is NULL"))
+  (ensure db)
+  )
diff --git a/gn/runner/gemma.scm b/gn/runner/gemma.scm
new file mode 100644
index 0000000..31a14f7
--- /dev/null
+++ b/gn/runner/gemma.scm
@@ -0,0 +1,29 @@
+(define-module (gn runner gemma)
+  #:use-module (json)
+  #:use-module (ice-9 match)
+  #:use-module (ice-9 format)
+  #:use-module (ice-9 iconv)
+  #:use-module (ice-9 receive)
+  #:use-module (ice-9 string-fun)
+
+  #:export (
+            run-gemma
+            ))
+
+(define (run-gemma data-id name trait-name traits)
+  (if name
+      (display (string-append "WE HAVE OUR BXD DATASET " name " and trait " trait-name " for precompute!\n")))
+  (display data-id)
+  (display traits)
+  (newline)
+  ;; ---- write phenotype file
+  (call-with-output-file "test.tmp"
+    (lambda (port)
+      (write 12 port)
+      (newline port)
+      (write "HELLO" port)
+      ))
+
+  ;; ---- start GEMMA precompute
+  (system "gemma")
+  )