因此,我尝试使用该rentrez
软件包从 GenBank 中检索 DNA 序列数据,并提供物种列表作为输入。我所做的是为我要查询的物种创建一个向量,然后创建一个term
我指定要检索的序列数据类型的位置,然后创建一个search
检索与我的查询匹配的所有事件,最后我创建data
我在 fasta 文件中检索实际序列数据的位置。
library(rentrez)
species<-c("Ablennes hians","Centrophryne spinulosa","Doratonotus megalepis","Entomacrodus cadenati","Katsuwonus pelamis","Lutjanus fulgens","Pagellus erythrinus")
for (x in species){
term<-paste(x,"[Organism] AND (((COI[Gene] OR CO1[Gene] OR COXI[Gene] OR COX1[Gene]) AND (500[SLEN]:3000[SLEN])) OR complete genome[All Fields] OR mitochondrial genome[All Fields])",sep='',collapse = NULL)
search<-entrez_search(db="nuccore",term=term,retmax=99999)
data<-entrez_fetch(db="nuccore",id=search$ids,rettype="fasta")
}
基本上我要做的是将每个物种的查询结果连接成一个变量。我开始使用 for 循环,但我认为这种形式没有意义,因为正在查询的每个新物种的数据只是替换data
.
对于 的某些元素species
,将没有要检索的数据,并且 R 显示此错误:
Error: Vector of IDs to send to NCBI is empty, perhaps entrez_search or entrez_link found no hits?
在显示此错误并因此没有该特定物种的数据的情况下,我希望代码继续运行并忽略它。
我的输出将是一个变量data
,其中将包括检索的序列数据,来自species
.