[ea2224]: / inst / queries / datasetGeneProbeAvg.xq

Download this file

18 lines (17 with data), 679 Bytes

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