【发布时间】:2021-10-28 14:12:50
【问题描述】:
我目前正在使用readlines() 将 HTML 代码拉入 R 中的临时对象,但发现速度很慢。对于执行大量迭代,人们会推荐哪种工具更快?
作为背景,我正在查看一些祖先 DNA 结果,这些结果有 600,000 多个潜在变体可供查看。
当前代码:
for (rs in seq(1,nrow(ancest_DNA)))
temp_rs <- ancest_DNA[rs,"rsid"]
print(paste0("Iteration ",which(ancest_DNA$rsid == temp_rs)))
print(paste0("RSID ",temp_rs))
#Search for any clinical significance on Clinvar
NCBI <- readLines(paste("https://www.ncbi.nlm.nih.gov/snp/",temp_rs,sep = ""),n = 800)
使用 reutils 更新代码
for(rs in seq(1, nrow(ancest_DNA))) {
temp_rs <- ancest_DNA[rs,"rsid"]
info <- efetch(temp_rs, db = "snp", strand = 1)
info2 <- xmlToDataFrame(info$`.->content`)
print(paste0("Interation: ", rs))
ancest_DNA[rs,"ClinSig"] <- info2["1","CLINICAL_SIGNIFICANCE"]
ancest_DNA[rs,"Gene"] <- info2["1","GENES"]
temp_allele <- info2$SPDI
temp_allele2 <- strsplit(temp_allele, ",")
for (nt in seq(1,length(temp_allele2[[1]]))) {
temp_allele2[[1]][nt] <- str_extract(temp_allele2[[1]][nt], "(?<=:\\D:).*")
}
if (length(temp_allele2[[1]]) == 1) {
ancest_DNA[rs,"PathAllele"] <- temp_allele2[[1]]
}
if (length(temp_allele2[[1]]) == 2) {
ancest_DNA[rs,"PathAllele"] <- temp_allele2[[1]][1]
ancest_DNA[rs,"PathAllele2"] <- temp_allele2[[1]][2]
}
}
【问题讨论】:
标签: r readlines doparallel ncbi