Question: Questions regarding convertIDs in the rnaseqGene Package
0
gravatar for Cheng-Yuan Kao
4.1 years ago by
Taiwan
Cheng-Yuan Kao80 wrote:

Hey, there,

I was following the instruction of http://www.bioconductor.org/help/workflows/rnaseqGene/#annotate to update the annotation in my DEG files.  I used the code they designed: 

convertIDs <- function( ids, from, to, db, ifMultiple=c("putNA", "useFirst")) {
  stopifnot( inherits( db, "AnnotationDb" ) )
  ifMultiple <- match.arg( ifMultiple )
  suppressWarnings( selRes <- AnnotationDbi::select(
    db, keys=ids, keytype=from, columns=c(from,to) ) )
  if ( ifMultiple == "putNA" ) {
    duplicatedIds <- selRes[ duplicated( selRes[,1] ), 1 ]
    selRes <- selRes[ ! selRes[,1] %in% duplicatedIds, ]
  }
  return( selRes[ match( ids, selRes[,1] ), 2 ] )
}

I loaded my DEG csv file to deg_01 first. The id column has all the refseq ids.

Then

> deg_01$newMGI_symbol <- convertIDs("deg_01$id", "REFSEQ", "SYMBOL", org.Mm.eg.db)

 Error in .testForValidKeys(x, keys, keytype) : 
  None of the keys entered are valid keys for 'REFSEQ'. Please use the keys method to see a listing of valid arguments. 

I checked and the deg_01$id are all refseq ids.

> deg_01$id
  [1] NM_026268    NM_025777    NM_013478    NR_015524    NM_001099297 NM_177610    NM_001122954
  [8] NM_144834    NM_011110    NM_016668    NM_013820    NM_001145874 NM_001081060 NM_080457   
 [15] NM_007646    NM_020279    NM_172415    NM_007686    NM_001112723 NM_001173505 NM_001290565
 

Any suggestions? Thanks.

 

 

 

 

rnaseqgene convertids • 773 views
ADD COMMENTlink modified 4.0 years ago • written 4.1 years ago by Cheng-Yuan Kao80

It looks like your IDs are factors, not character. However that should result in a different error:

> d.f[,1]
 [1] NM_026268              NM_025777              NM_013478             
 [4] NR_015524              NM_001099297 NM_177610 NM_001122954 NM_144834
 [7] NM_011110              NM_016668              NM_013820             
[10] NM_001145874           NM_001081060           NM_080457             
[13] NM_007646              NM_020279              NM_172415             
[16] NM_007686              NM_001112723           NM_001173505          
[19] NM_001290565          
19 Levels: NM_001081060 NM_001099297 NM_177610 ... NR_015524

> convertIDs(d.f[,1], "REFSEQ","SYMBOL", org.Mm.eg.db)
Error in .testForValidKeys(x, keys, keytype) :
  'keys' must be a character vector

> convertIDs(as.character(d.f[,1]), "REFSEQ","SYMBOL", org.Mm.eg.db)
 [1] "Dusp6"     "Duoxa2"    "Azgp1"     "Cep83os"   NA          NA         
 [7] "Pla2g5"    "Bhmt"      "Hk2"       "Muc20"     "Slc9a3"    "Muc4"     
[13] "Cd38"      "Ccl28"     "Arhgef10l" "Cfi"       "Arhgef10l" "Thpo"     
[19] "Syne4"    
ADD REPLYlink written 4.1 years ago by James W. MacDonald49k
Answer: Questions regarding convertIDs in the rnaseqGene Package
0
gravatar for Cheng-Yuan Kao
4.0 years ago by
Taiwan
Cheng-Yuan Kao80 wrote:

Great. Thanks for your help. 

I followed your suggestion and did:

> deg_01$newMGI_symbol <- convertIDs(as.character(deg_01$id), "REFSEQ", "SYMBOL", org.Mm.eg.db)

It worked. I did not know that factor vs character makes such a difference because the same input works well with biomaRt .

ADD COMMENTlink written 4.0 years ago by Cheng-Yuan Kao80

Indeed. Sometimes a programmer will include error checking to enforce the correct form for input values, and sometimes a programmer will include explicit conversion from e.g., factor to character. Doing the conversion yourself is the safest way to go, IMO.
 

ADD REPLYlink written 4.0 years ago by James W. MacDonald49k
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 16.09
Traffic: 266 users visited in the last hour