R/phenoscanner only allows for certain number of items supplied. This simple function return a large number of calls in batches as well as generating SNPIDs.
Usage
snpqueries(
snplist,
block_size = 100,
waiting_time = 60 * 60,
catalogue = "pQTL",
proxies = "EUR",
p = 5e-08,
r2 = 0.8,
build = 37,
wait = TRUE
)
Arguments
- snplist
a list of SNPs.
- block_size
size of each query block.
- waiting_time
time (in seconds) to wait between query blocks.
- catalogue
"None","eQTL","mQTL","methQTL","pQTL","GWAS".
- proxies
"None", "AFR","AMR","EAS","EUR","SAS".
- p
p value threshold.
- r2
r2 for LD.
- build
37, 38.
- wait
a flag to wait for 1hr for every 500 SNPs.
Examples
if (FALSE) { # \dontrun{
# single SNP
snpqueries("rs704")
# SCALLOP/INF
INF <- Sys.getenv("INF")
rsid <- scan(paste(INF,'work','INF1.merge.snp',sep='/'),"")
r <- snpqueries(rsid,catalogue='pQTL',p=1e-11)
INTERVAL_Olink <- subset(with(r,results),efo=='EFO_0004747' & pmid=='29875488')
save(INTERVAL_Olink,file='INTERVAL_Olink.rda',compress='xz')
# --- query intersect proteins ---
# SomaLogic intersect
SomaLogic_overlap_list <- subset(st4,UniProt %in% intersect_list)
r <- snpqueries(SomaLogic_overlap_list[,6],catalogue='pQTL',p=1e-11)
SomaLogic_overlap <- subset(with(r,results),efo=='EFO_0004747' & pmid=='29875488')
save(SomaLogic_overlap_list,SomaLogic_overlap,file='SomaLogic_overlap.rda',compress='xz')
SomaLogic_result <- merge(SomaLogic_overlap_list,SomaLogic_overlap,
by.x="Sentinel.variant*",by.y="snp")
# Olink intersect
INF1_merge_rsid <- read.delim(paste(INF,"work","INF1.merge-rsid",sep="/"))
INF1_merge_rsid_uniprot <- merge(INF1_merge_rsid,inf1,by="prot")
Olink_overlap_list <- subset(INF1_merge_rsid_uniprot,uniprot %in% intersect_list)
r <- snpqueries(with(Olink_overlap_list,MarkerName),catalogue='pQTL',p=1e-11)
Olink_overlap <- subset(with(r,results),efo=='EFO_0004747' & pmid=='29875488')
save(Olink_overlap_list,Olink_overlap,file='Olink_overlap.rda',compress='xz')
Olink_result <- merge(Olink_overlap_list,Olink_overlap,by.x="MarkerName",by.y="snp")
} # }