diff options
Diffstat (limited to 'gn/data')
-rw-r--r-- | gn/data/group.scm | 23 | ||||
-rw-r--r-- | gn/data/species.scm | 10 |
2 files changed, 29 insertions, 4 deletions
diff --git a/gn/data/group.scm b/gn/data/group.scm new file mode 100644 index 0000000..003ac11 --- /dev/null +++ b/gn/data/group.scm @@ -0,0 +1,23 @@ +(define-module (gn data group) + #:use-module (srfi srfi-1) + #: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) + #:use-module (gn db sparql) + #:use-module (web gn-uri) + + #:export ( + get-group-links + )) + +(define (get-group-links gnid) + "Return all the URIs that link to group info, e.g. for Mus_musculus" + (let ([recs (car (cdr (compile-groups-meta)))] + [uri (mk-gnid gnid)]) + (filter-map + (lambda (r) (if (string=? (second r) uri) + (list ("ref" . (car r))) + #f)) recs) + )) diff --git a/gn/data/species.scm b/gn/data/species.scm index 72ab7cf..ca3bb05 100644 --- a/gn/data/species.scm +++ b/gn/data/species.scm @@ -6,9 +6,11 @@ #:use-module (ice-9 receive) #:use-module (ice-9 string-fun) #:use-module (gn db sparql) + #:use-module (gn data group) #:use-module (web gn-uri) #:export ( + gnid-species get-species-meta get-species-data get-species-shortnames @@ -17,10 +19,10 @@ get-expanded-taxon-data )) -(define (gn-species short-name) - "Find the GN identifier from shortname" +(define (gnid-species short-name) + "Find the GN identifier from shortname, e.g. Mus_musculus" (let ([rec (get-expanded-taxon-data short-name)]) - rec + (url-parse-id (assoc-ref rec "gnid")) )) (define (get-species) @@ -128,5 +130,5 @@ ("meta" . ,(mk-meta id)) ("data" . ,(mk-data id)) ("up" . ,(mk-meta "species")) - ("links" . "test") ; ,(get-group-links (gn-species id))) + ("links" . ,(list->vector (get-group-links (gnid-species id)))) )) |