diff options
author | Pjotr Prins | 2025-08-02 13:31:43 +0200 |
---|---|---|
committer | Pjotr Prins | 2025-08-02 13:31:43 +0200 |
commit | 6e1e275813fb55c9a53e37b004262f3070ef42b3 (patch) | |
tree | 104712bdd7b9e490dfc02ff2efa1ab6758c5ee74 | |
parent | f5ec159d3c14bd12f410ca2fa64560121308f25b (diff) | |
download | gn-guile-6e1e275813fb55c9a53e37b004262f3070ef42b3.tar.gz |
-rw-r--r-- | gn/data/dataset.scm | 26 | ||||
-rw-r--r-- | gn/runner/gemma.scm | 15 | ||||
-rw-r--r-- | web/webserver.scm | 5 |
3 files changed, 17 insertions, 29 deletions
diff --git a/gn/data/dataset.scm b/gn/data/dataset.scm index f099171..b552b21 100644 --- a/gn/data/dataset.scm +++ b/gn/data/dataset.scm @@ -18,7 +18,6 @@ get-bxd-publish-list get-bxd-publish-values-list get-bxd-publish-name-value-dict - write-pheno-file )) (define (get-dataset db probesetfreeze-id) @@ -71,28 +70,3 @@ `(,(assoc-ref r "Name") . ,(assoc-ref r "value")) ) '()))) ))))) - - -(define (write-pheno-file fn traits) - (define bxd-inds (geno-inds-bxd (pk "BXD.json"))) - (assert (= 235 (length bxd-inds))) - (display bxd-inds) - (call-with-output-file fn - (lambda (port) - (for-each - (lambda (ind) - (begin - (let* [(value (assoc-ref traits ind)) - (outvalue (if value - value - "NA"))] - (if value - (begin - (format #t "~s ~s" ind outvalue) - (newline))) - (display outvalue port) - (newline port)))) - bxd-inds) - (close port) - )) -) 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))) diff --git a/web/webserver.scm b/web/webserver.scm index c242b9d..28e33cd 100644 --- a/web/webserver.scm +++ b/web/webserver.scm @@ -24,6 +24,7 @@ (gn data dataset) (gn data species) (gn data group) + (gn runner gemma) (web sxml) (web view view) (web view doc) @@ -261,8 +262,8 @@ otherwise search for set/group data" (".json" (render-json (get-bxd-publish-values (basename page ".json")))) (".tsv" (render-string "TEST1\nTEST2")) - (".gemma" (write-pheno-file page (get-bxd-publish-values (basename page ".gemma")))) - (else (display "ERROR: unknown file type")))) + (".gemma" (render-string (string-join (gemma-pheno-txt "BXD" (get-bxd-publish-values (basename page ".gemma"))) ""))) + (else (display "ERROR: unknown file extension")))) (('GET "dataset" "bxd-publish" "mapping" "values" (string-append dataid ".json")) (render-json (get-bxd-publish-values dataid #:used-for-mapping? #t))) (('GET "doc" "species.html") |