|
a |
|
b/inst/queries/sparseDataMatchField.xq |
|
|
1 |
; sparseDataMatchField |
|
|
2 |
(fn [field dataset names] |
|
|
3 |
(let [getfield (fn [field] |
|
|
4 |
(:id (car (query {:select [:field.id] |
|
|
5 |
:from [:dataset] |
|
|
6 |
:join [:field [:= :dataset.id :field.dataset_id]] |
|
|
7 |
:where [:and [:= :field.name field] [:= :dataset.name dataset]]})))) |
|
|
8 |
genes (getfield field)] |
|
|
9 |
(map :gene (query {:select [:%distinct.gene] |
|
|
10 |
:from [:field_gene] |
|
|
11 |
:join [{:table [[[:name :varchar names]] :T]} [:= :T.name :gene]] |
|
|
12 |
:where [:= :field_gene.field_id genes]})))) |