|
a |
|
b/inst/queries/datasetGeneProbeAvg.xq |
|
|
1 |
; datasetGeneProbeAvg |
|
|
2 |
(fn [dataset samples genes] |
|
|
3 |
(let [probemap (:probemap (car (query {:select [:probemap] |
|
|
4 |
:from [:dataset] |
|
|
5 |
:where [:= :name dataset]}))) |
|
|
6 |
get-probes (fn [gene] (xena-query {:select ["name" "position"] :from [probemap] :where [:in :any "genes" [gene]]})) |
|
|
7 |
avg (fn [scores] (mean scores 0)) |
|
|
8 |
scores-for-gene (fn [gene] |
|
|
9 |
(let [probes (get-probes gene) |
|
|
10 |
probe-names (probes "name") |
|
|
11 |
scores (fetch [{:table dataset |
|
|
12 |
:samples samples |
|
|
13 |
:columns probe-names}])] |
|
|
14 |
{:gene gene |
|
|
15 |
:position (probes "position") |
|
|
16 |
:scores (if (car probe-names) (avg scores) [[]])}))] |
|
|
17 |
(map scores-for-gene genes))) |