about summary refs log tree commit diff
path: root/gn/data/dataset.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gn/data/dataset.scm')
-rw-r--r--gn/data/dataset.scm20
1 files changed, 20 insertions, 0 deletions
diff --git a/gn/data/dataset.scm b/gn/data/dataset.scm
index 5f6bb0f..6b2292a 100644
--- a/gn/data/dataset.scm
+++ b/gn/data/dataset.scm
@@ -4,6 +4,7 @@
   #:use-module (ice-9 iconv)
   #:use-module (ice-9 receive)
   #:use-module (ice-9 string-fun)
+  #:use-module (srfi srfi-1)
   #:use-module (dbi dbi)
   #:use-module (gn db mysql)
   #:use-module (gn data group)
@@ -13,6 +14,7 @@
   #:export (
             dataset-name
             get-bxd-publish-list
+            get-bxd-publish-values-list
             ))
 
 (define (get-dataset db probesetfreeze-id)
@@ -30,3 +32,21 @@
      (let [(query "SELECT Id,PhenotypeId,DataId FROM PublishXRef WHERE InbredSetId=1")]
        (dbi-query db query)
        (get-rows db '())))))
+
+(define* (get-bxd-publish-values-list dataid #:key used-for-mapping?)
+  (call-with-db
+   (lambda (db)
+     (let [(query (string-append "SELECT Strain.Name, PublishData.value FROM Strain, PublishData WHERE PublishData.Id=" dataid " and Strain.Id=StrainID;"))]
+       (dbi-query db query)
+       (if used-for-mapping?
+           (remove null? (pk (get-rows-apply db
+                                             (lambda (r)
+                                               (if (string-contains (assoc-ref r "Name") "BXD")
+                                                   `(("Name" . ,(assoc-ref r "Name")) ("value" . ,(assoc-ref r "value")))
+                                                   '() ) ;; return empty on no match
+                                               ) '())))
+           (get-rows db '())
+           )))))
+
+
+;; (define ids (db-get-rows-apply db (lambda (r) `(,(assoc-ref r \"StrainId\") . ,(assoc-ref r \"Name\"))) '()))