From this notebook we've got some examples, particularly for the 4 QTL case where the smallest p-value has small PIP, and it seems to be driven by adjunct signal clusters. We want to see if SuSiE's results makes more sense, specifically if it falls in splice sites.
%cd /project/compbio/jointLCLs/results/SuSiE/fastqtl_qqnorm_ASintron_RNAseqGeuvadis_YangVCF_100Kb
Notice that below is the same intron cluster as the 5 QTL case above. It has perfectly correlated signals. The top z-score has PIP zero.
%preview SuSiE_CS_4/AS_chr12_27542229_27543032_clu_562.png
Load SuSiE results
dat = readRDS('SuSiE_CS_4/AS_chr12_27542229_27543032_clu_562.rds')
names(dat)
Load input data
print(dat$input)
input = readRDS(dat$input)
sapply(1:length(input), function(i) input[[i]]$uname)
So it is the 2nd data-set in the input intron cluster that we are interested in.
input = input[[2]]
input$uname
Now let's identify the SNP having the largest z-score,
which.max(abs(input$z_score))
and the ones in SuSiE CS:
dat$sets$cs
interested = as.vector(unlist(dat$sets$cs))
interested
names(input$z_score)[interested]
Now let's focus on the one SuSiE SNP (rs11049018_chr12_27612107_A_G
) nearest to the top z-score (rs55880072_chr12_27612517_A_C
), . PIP of this SNP is 1. We check in UCSC browser chr12:27,612,000-27,612,600
that includes both this and the top SNP.
%preview ~/tmp/arntl2.png
Hard to argue about anything interesting.
%preview SuSiE_CS_5/AS_chr12_27542229_27543041_clu_562.png
dat = readRDS('SuSiE_CS_5/AS_chr12_27542229_27543041_clu_562.rds')
input = readRDS(dat$input)
sapply(1:length(input), function(i) input[[i]]$uname)
input = input[[3]]
which.max(abs(input$z_score))
dat$sets$cs
interested = as.vector(unlist(dat$sets$cs))
interested
names(input$z_score)[interested]
We focus on rs67786386_chr12_27616181_C_A
vs rs55880072_chr12_27612517_A_C
(same as before). We query chr12:27612517-27616381
%preview ~/tmp/arntl2_right.png
It does fall into DNase I cluster, but nothing interesting beyond this point.
[global]
parameter: fn=path()
[default]
input: fn
R: expand = True
dat = readRDS({_input:r})
input = readRDS(dat$input)
idx = which(sapply(1:length(input), function(i) input[[i]]$uname) == {_input:bnr})
input = input[[idx]]
znames = names(input$z_score)
zidx = which.max(abs(input$z_score))
print(zidx)
print(znames[zidx])
interested = as.vector(unlist(dat$sets$cs))
print(dat$sets$cs)
print(znames[interested])
%preview SuSiE_CS_2/AS_chr19_50837358_50838086_clu_8171.png
%sosrun --fn SuSiE_CS_2/AS_chr19_50837358_50838086_clu_8171.rds
%preview SuSiE_CS_2/AS_chr19_54704756_54705028_clu_8215.png
%sosrun --fn SuSiE_CS_2/AS_chr19_54704756_54705028_clu_8215.rds
%preview ~/tmp/rps9.png
SuSiE signal falls in the "Layered H3K27AC" peak.
%preview SuSiE_CS_2/AS_chr20_20007563_20013746_clu_9197.png
%preview SuSiE_CS_2/AS_chr20_37055833_37059684_clu_9365.png
%sosrun --fn SuSiE_CS_2/AS_chr20_37055833_37059684_clu_9365.rds
%preview SuSiE_CS_2/AS_chr20_57570814_57572658_clu_9568.png
%sosrun --fn SuSiE_CS_2/AS_chr20_57570814_57572658_clu_9568.rds
%preview ~/tmp/ctsz.png
%preview ~/tmp/ak310046.png
%preview SuSiE_CS_2/AS_chr22_30822832_30823227_clu_8715.png
%sosrun --fn SuSiE_CS_2/AS_chr22_30822832_30823227_clu_8715.rds
30823133 and 30823196 both suggests one exon, in two different CS. There are also a number of other seemly interesting hits.
%preview ~/tmp/22-1.png
%preview ~/tmp/22-2.png
%preview ~/tmp/22-3.png
%preview ~/tmp/22-4.png
%preview SuSiE_CS_2/AS_chr5_130662593_130694902_clu_11986.png
%sosrun --fn SuSiE_CS_2/AS_chr5_130662593_130694902_clu_11986.rds
Just introns, nothing exciting.
%preview SuSiE_CS_2/AS_chr6_29912868_29913011_clu_10776.png
%sosrun --fn SuSiE_CS_2/AS_chr6_29912868_29913011_clu_10776.rds
%preview SuSiE_CS_2/AS_chr7_43690311_43695632_clu_10066.png
%sosrun --fn SuSiE_CS_2/AS_chr7_43690311_43695632_clu_10066.rds
SuSiE signal certainly closer to exons. rs73108662_chr7_43710433_C_A
has nothing.
%preview ~/tmp/7-1.png
%preview ~/tmp/7-2.png
%preview ~/tmp/7-3.png