From e4cb959730ed5d89c8f5e96de2ddbd405fcf2cc9 Mon Sep 17 00:00:00 2001 From: Pjotr Prins Date: Tue, 21 Nov 2023 11:26:07 +0100 Subject: Adding GEMMA --- gn/data/hits.scm | 13 +++++++++++-- gn/runner/gemma.scm | 29 +++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+), 2 deletions(-) create mode 100644 gn/runner/gemma.scm (limited to 'gn') 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") + ) -- cgit v1.2.3