设为首页 加入收藏

TOP

寻找与疾病相关的SNP位点——R语言从SNPedia批量提取搜索数据(三)
2017-10-10 12:09:12 】 浏览:9762
Tags:寻找 疾病 相关 SNP位点 语言 SNPedia 批量 提取 搜索 数据
& length(tmp)==0){info$"CLNACC "=" "} } info } greg_return_string <- function(pattern,stringlist){ #greg_return_stirng 指定匹配全部字符串列表,返回匹配的字符串 #pattern:匹配模式,比如"abc[a-z]*" stringlist:字符串列表,list("abc","abcde","cdfe") return : 列表里字符串匹配结果,"abc""abcde" findlist <- gregexpr(pattern,stringlist) needlist <- list() for (i in which(unlist(findlist)>0)){ preadress <- substr(stringlist[i],findlist[[i]],findlist[[i]]+attr(findlist[[i]],'match.length')-1) needlist<- c(needlist,list(preadress)) } return(needlist) } greg_return_index <- function(pattern,stringlist){ #greg_return_stirng 指定匹配全部字符串列表,返回存在匹配的字符串列表index #pattern:匹配模式 stringlst:待匹配字符串列表 return:存在返回匹配的字符串在列表中的index findlist <- gregexpr(pattern,stringlist) needlist <- list() which(unlist(findlist)>0) } extradress <- function(strURL){ #将strURL网页里面我们所需要链接提取出来并加工 #strURL:网页链接网址 return:网址列表,包括所有提取加工后的网址链接 pattern <- "/index.php/Rs[0-9]+" prefix <- "https://snpedia.com" #网址改为https起始 links <- getHTMLLinks(download(strURL)) # getHTMLLinks不能解析https的网址,因此先用download解析网址 needlinks <- gregexpr(pattern,links) needlinkslist <- list() for (i in which(unlist(needlinks)>0)){ preadress <- substr(links[i],needlinks[[i]],needlinks[[i]]+attr(needlinks[[i]],'match.length')-1) needlinkslist<- c(needlinkslist,list(preadress)) adresses <- lapply(needlinkslist,function(x)paste(prefix,x,sep="")) } adresses } greg <- function(pattern,istring){ #greg函数查看单个字符串istring,并且返回匹配的部分,不匹配返回空 gregout <- gregexpr(pattern,istring) substr(istring,gregout[[1]],gregout[[1]]+attr(gregout[[1]],'match.length')-1) } library(RCurl) library(XML) #自定义部分 strURL <- "https://snpedia.com/index.php?title=Special%3ASearch&profile=default&fulltext=Search&search=Congenital+adrenal+hyperplasia" #snpedia网址都已改为https开头 output <- "ouput.txt" message(paste("[prog]",strURL,output,sep=" ")) strURLs <- extradress(strURL) pattlistMainTable <- list("Orientation$","Stabilized$","Reference$","Chromosome$","Position$","Gene$") #此匹配模式列表用于返回该字符串所在index,而对应的值是index是该index+1 pattlistClinvar <- list("Risk\n\n[-A-Za-z0-9_.%;\\(\\), ]+","Alt\n\n[-A-Za-z0-9_.%;\\(\\), ]+", "Reference\n\n[-A-Za-z0-9_.%;\\(\\) ]+","Significance \n[A-Za-z ]+","Disease \n\n[A-Za-z ]+", "CLNDBN \n\n[-A-Za-z0-9_.% ]+","Reversed \n\n[0-9]+", "HGVS \n\n[-A-Za-z0-9_.%:> ]+","CLNSRC \n\n[-A-Za-z0-9_.% ]+","CLNACC \n\n[-A-Za-z0-9_.%, ]+") #此匹配模式列表用于返回相应clinvar inf <- " " for ( strURL in strURLs){ dat <- getinf(strURL) if (inf==" "){ inf <- dat }else{ inf <- rbind(inf,dat) } } write.table(inf, file = output, row.names = F, col.names=T,quote = F, sep="\t") # tab 分隔的文件 message("完成!")

结果可以用直接打开,也可以用excel的自文本打开,方便查看

首页 上一页 1 2 3 下一页 尾页 3/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇机器学习:形如抛物线的散点图在py.. 下一篇R语言数据分析利器data.table包 ..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目