[BioC] revmap question

James W. MacDonald jmacdon at med.umich.edu
Tue Oct 7 14:26:44 CEST 2008


Hi Raffaele,

rcaloger wrote:
> Hi,
> I  found very interesting the possibility of using reversing the mapping 
> by revmap in the XXXX.db annotation databases.
> 
> However, I have two problems:
> 1) if  I use:
> egs <- c("1", "100", "1000")
> unlist(mget(egs, revmap(hgu133plus2ENTREZID)))
> 
> I am getting not only the probesets associated to the three EGs:
>            1          1001          1002          1003         10001
>  "229819_at"  "1556117_at"   "204639_at" "216705_s_at"   "203440_at"
>        10002         10003
> "203441_s_at"   "237305_at"

Well, not really. This appears to be so because you are unlisting a 
named list. Since the names have to be unique, R adds an additional 
integer to the end of duplicate names:

 > egs <- c("1", "100", "1000")
 > mget(egs, revmap(hgu133plus2ENTREZID))
$`1`
[1] "229819_at"

$`100`
[1] "1556117_at"  "204639_at"   "216705_s_at"

$`1000`
[1] "203440_at"   "203441_s_at" "237305_at"

> There is any possibility to avoid this problem?
> 
> 2) if in the egs vector is present an eg (6333) that is not present in 
> the annotation database I get the following error:
> egs <- c("1", "100", "1000", "6333")
> unlist(mget(egs, revmap(hgu133plus2ENTREZID)))
> 
> Error in .checkKeys(value, Rkeys(x), x at ifnotfound) :
>  value for "6333" not found
> 
> There is any possibility to make a query that simply avoid the unmapped 
> keys?

Yes. The help for mget is a bit confusing on this point, but you need to 
use the argument ifnotfound = NA.

 > egs <- c("1", "100", "1000", "6333")
 > mget(egs, revmap(hgu133plus2ENTREZID), ifnotfound = NA)
$`1`
[1] "229819_at"

$`100`
[1] "1556117_at"  "204639_at"   "216705_s_at"

$`1000`
[1] "203440_at"   "203441_s_at" "237305_at"

$`6333`
[1] NA

Best,

Jim



> 
> 
> Many thanks
> Raffaele
> 

-- 
James W. MacDonald, M.S.
Biostatistician
Hildebrandt Lab
8220D MSRB III
1150 W. Medical Center Drive
Ann Arbor MI 48109-0646
734-936-8662



More information about the Bioconductor mailing list