[BioC] Help using biomaRt

john seers (IFR) john.seers at bbsrc.ac.uk
Mon Jan 26 09:42:58 CET 2009

Hi Steve

Thanks for the answers. I will go back and try again and perhaps make
some progress.

On your second point I will check for illegal characters; but the
transcript names were returned from Biomart/Ensembl so they should be


John Seers 


mailto:John.Seers at bbsrc.ac.uk

John Seers
Bioinformatics & Statistics
Institute of Food Research
Norwich Research Park
Location: IFR1 N102
PC Machine ID: N198

tel +44 (0)1603 251497
fax +44 (0)1603 507723
e-mail john.seers at bbsrc.ac.uk                         
e-disclaimer at http://www.ifr.ac.uk/edisclaimer/ 
Web sites:


-----Original Message-----
From: Steve Lianoglou [mailto:mailinglist.honeypot at gmail.com] 
Sent: 23 January 2009 16:46
To: john seers (IFR)
Cc: bioconductor at stat.math.ethz.ch
Subject: Re: [BioC] Help using biomaRt


> Question 1
> ===========
> I am using the Ensembl database. Looking at the www.ensembl.org  
> website
> it looks like you do not have to specify a filter. Do you have to
> specify a filter using biomaRt/R? If not how is it done?

I'm not sure I get what you're getting at, and probably others will  
jump in to answer your question with ease (I'm also getting more  
acquainted w/ biomaRt), but could you give an example of a query  
you're trying to do that wouldn't use a filter?

Perhaps one I can think of off hand would be to get all the gene id's  
for your organism. Intuitively you might think that there are no  
filters you can use in this case, but you do: you would use the  
chromosomes you want to get the info for (in this case, it would be  
all of them). So, you would just do something like:

annos <- getBM(..., attributes='ensembl_gene_id',  
filters='chromosome_name', values=CHROMOSOMES)

That's a butchered-for-brevity piece of code. There is an example in  
the recent Toedling and Huber chip-chip tutorial from plos compbio  
where they call getBM as many times as there are chromosomes and  
filter/collate afterwards.

Anyway ... an example of the query you have in mind might help.

> Question 2
> ==============
> While trying things I get the following error message, presumably  
> caused
> by the attribute not being in that table.
> V1
> 1 Query ERROR: caught BioMart::Exception::Usage: Attributes from
> multiple attribute pages are not allowed
> Error in getBM(attnames, filters = filtnames, values = transcripts,  
> mart
> = mart) :
>  Number of columns in the query result doesn't equal number of
> attributes in query.  This is probably an internal error, please  
> report.

I was fighting with a similar error recently, I was using gene symbols/ 
names to look up annotation info for them. It turned out that some of  
my names had an apostrophe in the ('), and another gene name somehow  
had a "<b>" tacked on to it. I received a gene list from an  
experimentalist and just didn't think to scrub it, so it took a while  
to figure out that that was the problem.

Perhaps you have some illegal characters in your transcript names, too.


Steve Lianoglou
Graduate Student: Physiology, Biophysics and Systems Biology
Weill Medical College of Cornell University


More information about the Bioconductor mailing list