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

Download this file

15 lines (14 with data), 715 Bytes

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
; sparseDataRange
(fn [dataset samples chr start end]
(let [getfield (fn [field]
(:id (car (query {:select [:field.id]
:from [:dataset]
:join [:field [:= :dataset.id :field.dataset_id]]
:where [:and [:= :field.name field] [:= :dataset.name dataset]]}))))
sampleID (getfield "sampleID")]
{:samples (map :value (query {:select [:value]
:from [:code]
:where [:and [:in :value samples][:= :field_id sampleID]]}))
:rows (xena-query {:select ["ref" "alt" "altGene" "effect" "dna-vaf" "rna-vaf" "amino-acid" "genes" "sampleID" "position"]
:from [dataset]
:where [:and [:in "position" [[chr start end]]] [:in "sampleID" samples]]})}))