我想从网页上下载文件,例如
http://www.pdb.org/pdb/explore/explore.do?structureId=2FBA http://www.pdb.org/pdb/explore/explore.do?structureId=2GVS
我有一个包含2FBA,2GVS等的列表......
通过使用RCurl和XML,我知道R可以帮助将信息从网站废弃到数据帧。我可以使用R从网页下载所有2FBA.pdb,2GVS.pdb等文件,同时使用R指示如何替换最后4个字母(2FBA到2GVS ......)并将所有这些文件下载到我的工作中计算机?
在我看来,它可以通过python(来自stackoverflow的先前回复)来完成。但是,我对python不太熟悉。这就是为什么我要问R能否以聪明的方式为我做类似的事情。感谢您的评论。
答案 0 :(得分:4)
以下是使用plyr
包的一种方法。我们的想法是构建一个函数,下载给定蛋白质的pdb文件,然后使用l_ply
中的plyr
循环遍历蛋白质列表。
# function to download pdb file for a given protein
download_pdb = function(protein){
base_url = "http://www.pdb.org/pdb/files/"
dest_file = paste(protein, '.pdb.gz', sep = "")
protein_url = paste(base_url, dest_file, sep = "")
download.file(protein_url, destfile = dest_file)
}
proteins = list('2FBA', '2GVS')
require(plyr)
l_ply(proteins, download_pdb)
答案 1 :(得分:3)
我首先将所需的网址粘贴在一起,然后使用download.file
包中的utils
。
my.url <- "www.somewhere.com"
my.files <- c("file1.xxx", "file2.xxx", "file3.xxx")
my.list <- as.list(paste(my.url, my.files, sep = "/"))
my.dl <- lapply(X = my.list, FUN = download.file)