This is a test version of Biostars. For the public version, visit https://www.biostars.org.
Error while converting SYMBOLS to ENTREZID - Bioconductor

I am getting a strange error converting Gene Symbols to Entrez ID. Here is my code:

testData = read.delim("IL_CellVar.txt",head=T,row.names = 2)
testData[1:5,1:3]

ClustID Genes.Symbol ChrLoc

NM_001034168.1 4 Ank2 chrNA:-1--1

NM_013795.4 4 Atp5l chrNA:-1--1

NM_018770 4 Igsf4a chrNA:-1--1

NM_146150.2 4 Nrd1 chrNA:-1--1

NM_134065.3 4 Epdr1 chrNA:-1--1

clustNum = 5
filteredClust = testData[testData$ClustID == clustNum,]
anyis.na(filteredClust$Genes.Symbol))

[1] FALSE

selectedEntrezIds <- unlist(mget(filteredClust$Genes.Symbol,org.Mm.egSYMBOL2EG))

Error in unlist(mget(filteredClust$Genes.Symbol, org.Mm.egSYMBOL2EG)) : error in evaluating the argument 'x' in selecting a method for function 'unlist': Error in .checkKeysAreWellFormed(keys) : keys must be supplied in a character vector with no NAs

Another approach fails too:

selectedEntrezIds = select(org.Mm.eg.db,filteredClust$Genes.Symbol, "ENTREZID")

Error in .select(x, keys, columns, keytype = extraArgs[["kt"]], jointype = jointype) : 'keys' must be a character vector

Just for the sake or error, removing 'NA', doesn't help:

a <- filteredClust$Genes.Symbol[!is.na(filteredClust$Genes.Symbol)]
selectedEntrezIds <- unlist(mget(a,org.Mm.egSYMBOL2EG))

Error in unlist(mget(a, org.Mm.egSYMBOL2EG)) : error in evaluating the argument 'x' in selecting a method for function 'unlist': Error in .checkKeysAreWellFormed(keys) : keys must be supplied in a character vector with no NAs

I am not sure why I am getting this error as the master file from which gene symbols were extracted for testData gives no problem while converting to EntrezID. Would appreciate help on this.

Thanks

AK

r bioconductor illumina annotate

Is it just me or there really is a problem beginning right at the 4th line of code? You are assigning 5 to clustNum. Then you are checking if testData$ClustID is equal to clustNum which is 5. But testData$ClustID are NCBI accessions. This is not making any sense to me.

Just guessing, but I think the RefSeq accessions are actually rownames.

Damn! You are right.

1 answer

Th answer is in the error itself. Keys must be character vector. Try this,

selectedEntrezIds <- unlist(mget(as.character(a),org.Mm.egSYMBOL2EG))

This is the answer, so why not drop it as an answer below, just for posterity sake.

Log in to answer this question.