我正在尝试将DNA序列从网页下载到fastA文件中。我正在下载html网页,但无法仅获取fasta信息,而无法获取html信息 对于那些非生物信息学家来说,fasta文件看起来像这样
> DNA序列名称
ACTGCGATGCGATGCAGCTAGCTGACG
(其中ACTG部分是DNA序列)
我想不通如何拔出想要的行,因此我尝试了一种解决方法,方法是使用read.fasta()将网页数据作为fasta文件读取,除了最后一行之外,该文件都有效,无论我做什么,它总是打印出非DNA句子。我已经尝试了一些正则表达式替换和grep来获取我想要的内容或删除我不想要的内容,但到目前为止都没有奏效,所以我不知道自己在做什么错。
download.file("http://www.ng-mast.net/sql/fasta.asp?allele=POR",
"webpage.txt", "auto", quiet=FALSE, mode = "w",
cacheOK = TRUE, headers = NULL)
lines <- readLines(con = "webpage.txt", encoding = "UTF-8")
fastadpor <- str_replace_all(lines, "[:print:]*>POR",
">POR_")
writeLines(fastadpor2, con = "portemp.fasta")
newfasta <- read.fasta(file = "portemp.fasta", as.string =
TRUE, forceDNAtolower = FALSE)
write.fasta(sequences = newfasta, names = names(newfasta),
file.out = "por.fasta")
输出文件的末尾包含“全局序列和ST数据库
”,我不知道如何清除它。
答案 0 :(得分:1)
如果只抓取网页的所需部分而不抓取整个部分,这是最简单的。这可以通过rvest
之类的包来完成,该包可以让您选择某些HTML元素。
library(rvest)
allele <-
read_html("http://www.ng-mast.net/sql/fasta.asp?allele=POR") %>%
html_node("textarea") %>%
html_text()
writeLines(allele, "fasta.txt")