I am trying to get a FASTA file form NCBI website, I use the following function
getncbiseq <- function(accession){
dbs <- c()
for (i in 1:numdbs){
db <- dbs[i]
choosebank(db)
resquery <- try(query(".tmpquery", paste("AC=", accession)),silent = TRUE)
if (!(inherits(resquery, "try-error"))){
queryname <- "query2"
thequery <- paste("AC=",accession,sep="")
query(`queryname`,`thequery`)
# see if a sequence was retrieved:
seq <- getSequence(query2$req[[1]])
closebank()
return(seq)
}
closebank()
}
print(paste("ERROR: accession",accession,"was not found"))
}
When I try to retrieve the sequence
mydata <- getncbiseq("NC_001477")
Error in getSequence(query2$req[[1]]) : object 'query2' not found
Is there a better way to shorten these loop function also ?
if I use
query('queryname','the query')
#or
query("queryname","thequery")
I get another error
Error in query("queryname", "thequery") : invalid request:"unknown list at (^): \"(^)thequery\""