about summary refs log tree commit diff
path: root/gn/data/hits.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gn/data/hits.scm')
-rw-r--r--gn/data/hits.scm22
1 files changed, 19 insertions, 3 deletions
diff --git a/gn/data/hits.scm b/gn/data/hits.scm
index f7ce49e..85c4912 100644
--- a/gn/data/hits.scm
+++ b/gn/data/hits.scm
@@ -5,6 +5,7 @@
   #:use-module (ice-9 iconv)
   #:use-module (ice-9 receive)
   #:use-module (ice-9 string-fun)
+  #:use-module (srfi srfi-9)
   ;; #:use-module (gn db sparql)
   #:use-module (dbi dbi)
   #:use-module (gn db mysql)
@@ -17,11 +18,26 @@
             get-precompute-hit
             set-precompute-hit-status!
             update-precompute!
+            hit-data-id
+            hit-probeset-id
+            hit-probesetfreeze-id
             ))
 
-(define (get-precompute-hits db prev-id num)
-  (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 " (format #f "~d" num)))
-  (get-rows db '()))
+
+(define-record-type <hit>
+  (make-hit data-id probeset-id probesetfreeze-id)
+  hit?
+  (data-id hit-data-id)
+  (probeset-id hit-probeset-id)
+  (probesetfreeze-id hit-probesetfreeze-id)
+  )
+
+(define (get-precompute-hits db first-id num)
+  (dbi-query db (string-append "select Locus, DataId, ProbeSetId, ProbeSetFreezeId from ProbeSetXRef where DataId>" (int-to-string first-id) " AND Locus_old is NULL ORDER BY DataId LIMIT " (int-to-string num)))
+  (map (lambda (r)
+         (make-hit (assoc-ref r "DataId") (assoc-ref r "ProbeSetId") (assoc-ref r "ProbeSetFreezeId")))
+         (get-rows db '())
+  ))
 
 (define (get-precompute-hit db prev-id)
   (car (get-precompute-hits db prev-id 1)))