[R] Help with ape - read.GenBank()
Ben Bolker
bbolker at gmail.com
Fri Jan 28 21:46:42 CET 2011
James Meadow <jfmeadow <at> gmail.com> writes:
>
> Hi,
>
> I am trying to work with the ape package, and there is one thing I am
> struggling with. When calling the *read.GenBank()* function, I can get it
> to work with an object created like this:
>
> *>x <- c("AY395554","AY611035", ...)*
> *>read.GenBank(x)*
>
> However, I am trying to use the function to fetch several hundred sequences
> at once. So I have been testing with small files, but cannot get the right
> format. I tried to enter accession numbers with or without headers as a
> .csv and just as a text file, and I have tried *as.vector*, but I always get
> this error:
>
> >*x <- read.csv("numbers.csv",head=T)*
> *>attach(x)*
> *>x.vect <- as.vector(t(x)**)*
> *>x.seqs <- read.GenBank(x.vect)*
>
> Error in FI[i]:LA[i] : NA/NaN argument
>
> I have been trying this with an identical set of accession numbers, and it
> always works with the c() vector but not with the table, so the content is
> not the problem. I assume I am just missing a simple data structure detail,
> but I am at a loss. I have even tried a c() vector of more than a hundred
> accession numbers, and it worked quite well, so the length is not a
> problem.
It's not entirely clear how your CSV file is structured, but I'm supposing
that you have all your accession numbers in a single row (with appropriately
matching headers). (It would be a little bit more "R-ish" if you had
them all in a column, and would make life a little easier, but let's
work with what you have.)
After you use read.csv(), try str(x)
This should tell you that you have a data frame with a lot of columns,
each of which is a factor with a single element and a single level.
>From there try
m <- as.matrix(x)
str(m) should tell you you have a 1-row matrix of type 'character'
then
v <- c(m)
should drop the dimensions and leave you with a character vector
(try str(v) again to be sure)
then
read.GenBank(v)
should work
For future phylogenetic/comparative-methods type questions,
it's probably better to write to the r-sig-phylo mailing list ...
More information about the R-help
mailing list