Hello everyone!
I need to perform a function on several fasta files located in the same folder. I first created a file object which lists the files names present in the Rtest folder.
files <- list.files(path="~/R/Rtest")
Then I put my script into a function called genWS. The first step of this function is to import the files one by one to perform a series of actions on them.
genWS <- function(input) { x<-readDNAStringSet(file="input", format="fasta") ... }
At the end of the script I put a FOR loop to go on the next fasta file.
for (j in 1:length(files)) { genWS(files[j]) }
My problem is that I got this error when I try to run the whole script despite it works fine when I import fasta file one by one manually.
Error in .Call2("new_input_ExternalFilePtr", fp, PACKAGE = "Biostrings") : cannot open file 'input' Called from: .Call2("new_input_ExternalFilePtr", fp, PACKAGE = "Biostrings")
Any idea of what happen and how to solve it ?
Thanks!
Also FWIW note that you can load all your files at once by passing all their paths to
readDNAStringSet()
e.g.readDNAStringSet(files)
wherefiles
is the character vector you obtained withlist.files(path="~/R/Rtest")
. So, depending on what you need to do with the sequences, and granted that you have enough memory to load them all, it might be that you don't need a loop at all.H.