Search
Question: Please use the function 'listAttributes' to get valid attribute names
1
gravatar for al14
4 months ago by
al140
al140 wrote:

I am new in this. I use biomart see the code below:

`mart = useMart("ensembl")
mart = useDataset("hsapiens_gene_ensembl", mart)
db = getBM(attributes = c("uniprot_swissprot", "uniprot_genename", "illumina_humanht_12_v4"), 
           filters = "uniprot_swissprot", values = prot, mart = mart)`

 

I . get this error

 

`Error in getBM(attributes = c("UniProtKB/Swiss-Prot", "UniProtKB Gene Name",  : 
  Invalid attribute(s): UniProtKB/Swiss-Prot, UniProtKB Gene Name 
Please use the function 'listAttributes' to get valid attribute names`

 

ADD COMMENTlink modified 4 months ago • written 4 months ago by al140
3
gravatar for Mike Smith
4 months ago by
Mike Smith2.1k
EMBL Heidelberg / de.NBI
Mike Smith2.1k wrote:

The error message tries to give you some hints as to what to do next:

  Invalid attribute(s): uniprot_swissprot, uniprot_genename 
Please use the function 'listAttributes' to get valid attribute names

The first line above tells you that both uniprot_swissprot and uniprot_genename are invalid attributes i.e. there is no column in the Ensembl database with that name, so you need to find the correct name. The second line above suggests using the function listAttributes to give you a set of all the possible attributes that can be retrieved from the dataset you're accessing. e.g.

listAttributes(mart)

Did you get those original names from a document somewhere?  Sometimes Ensembl changes the column names and examples go out of date, so if you found that in the biomaRt documentation let me know and I'll update it.


For your case I think the two attributes you actually want are uniprotswissprot and uniprot_gn e.g.

library(biomaRt)

mart = useMart("ensembl")
mart = useDataset("hsapiens_gene_ensembl", mart)

prot <- c("P03891", "P03885")

db = getBM(attributes = c("uniprotswissprot", "uniprot_gn", "illumina_humanht_12_v4"), 
           filters = "uniprotswissprot", 
           values = prot, 
           mart = mart)
> db
  uniprotswissprot uniprot_gn illumina_humanht_12_v4
1           P03891     P03891                     NA
2           P03891     Q7GXY9                     NA
ADD COMMENTlink modified 4 months ago • written 4 months ago by Mike Smith2.1k

The names in my original script worked with biomart but probably Ensembl changed them. How can I know when and how names change in Ensembl?

Script now works thank you

 

ADD REPLYlink modified 4 months ago • written 4 months ago by al140
1

Not easily is the short answer.  Ensembl usually list them in their release notes e.g. ftp://ftp.ensembl.org/pub/release-88/release_88_biomart_changes.txt and Thomas Maurel generally mentions them in his Ensembl release posts here (Ensembl 88 is out!), but normally I find out when an existing script stops working with the error your posted.

ADD REPLYlink written 4 months ago by Mike Smith2.1k
Please log in to add an answer.

Help
Access

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.
Powered by Biostar version 2.2.0
Traffic: 177 users visited in the last hour