about summary refs log tree commit diff
path: root/gn/runner
diff options
context:
space:
mode:
authorPjotr Prins2025-08-02 13:31:43 +0200
committerPjotr Prins2025-08-02 13:31:43 +0200
commit6e1e275813fb55c9a53e37b004262f3070ef42b3 (patch)
tree104712bdd7b9e490dfc02ff2efa1ab6758c5ee74 /gn/runner
parentf5ec159d3c14bd12f410ca2fa64560121308f25b (diff)
downloadgn-guile-6e1e275813fb55c9a53e37b004262f3070ef42b3.tar.gz
API: endpoint gets trait values for BXD in GEMMA format
Diffstat (limited to 'gn/runner')
-rw-r--r--gn/runner/gemma.scm15
1 files changed, 14 insertions, 1 deletions
diff --git a/gn/runner/gemma.scm b/gn/runner/gemma.scm
index 9a5c0fc..c577305 100644
--- a/gn/runner/gemma.scm
+++ b/gn/runner/gemma.scm
@@ -10,11 +10,24 @@
   #:use-module (rnrs base)
 
   #:export (
-            write-pheno-file
+            gemma-pheno-txt
             invoke-gemma-wrapper-loco
             run-gemma
             ))
 
+(define (gemma-pheno-txt family traits)
+  "Return a list of values for GEMMA"
+  (assert (string=? family "BXD")) ; only supported right now
+  (define bxd-inds (geno-inds-bxd "BXD.json"))
+  (assert (= 235 (length bxd-inds)))
+  (map (lambda (ind)
+         (let [(value (assoc-ref traits ind))]
+           (if value
+               (format #f "~a" value)
+               "NA\n")
+           ))
+       bxd-inds))
+
 (define (write-pheno-file fn traits)
   (define bxd-inds (geno-inds-bxd "BXD.json"))
   (assert (= 235 (length bxd-inds)))