@ WouterDeCoster
Hi,
Sure. And, converting from numeric to character resolved the issue. Thank you.
Hi,
I am trying the convert the ENTREZ GENE ID to the GENE SYMBOLS using the "org.Hs.eg.db" library and getting error message as shown below. Please assist me with this and also the code is shown below.
Error in .checkKeysAreWellFormed(keys) : keys must be supplied in a character vector with no NAs
#GET GSE soft file and matrix
GSE59491 <- getGEO("GSE59491", GSEMatrix=FALSE)
#sample names
names(GSMList(GSE59491))
#platforms used in this GSE
names(GPLList(GSE59491 ))
GSM.platforms <- lapply(GSMList(GSE59491 ),function(x) {Meta(x)$platform})
data.frame(GSM.platforms)
#example of an GSM experession vector
Table(GSMList(GSE59491)[[1]])[1:100,]
#example of gene anotation data from GPL of GSM 1
Probe.anotaion.table <- Table(GPLList(GSE59491)[[1]])
#Probeset extrated from GPL of GSM 1
probesets <- as.character(Probe.anotaion.table$ID)
probesets <- Table(GPLList(GSE59491)[[1]])$ID
rownames(Probe.anotaion.table) <- make.names(Probe.anotaion.table$ID, unique=TRUE)
rownames(Probe.anotaion.table) =gsub(rownames(Probe.anotaion.table),pattern = "X",replacement = "")
#creating the expression matrix ordered by the GPL order of probes
data.matrix <- do.call('cbind',lapply(GSMList(GSE59491),function(x) {
tab <- Table(x)
mymatch <- match(probesets,tab$ID_REF)
return(tab$VALUE[mymatch])
}))
data.matrix <- apply(data.matrix,2,function(x) {as.numeric(as.character(x))})
rownames(data.matrix) <- probesets
data.matrix <- data.matrix[complete.cases(data.matrix), ]
data.matrix[1:5,]
##If log transformed##
data.matrix= 2^data.matrix
data.matrix[data.matrix<10]=10
###match probe and gene names
ProbeID.GSE59491 <- Probe.anotaion.table[which(rownames(Probe.anotaion.table)%in%rownames(data.matrix)),]
rownames(ProbeID.GSE59491)==rownames(data.matrix)
dim(data.matrix[complete.cases(ProbeID.GSE59491), ])
library(org.Hs.eg.db)
library(annotate)
ProbeID.GSE59491$Symbol = getSYMBOL(ProbeID.GSE59491$ENTREZ_GENE_ID, data='org.Hs.eg.db')
Error in .checkKeysAreWellFormed(keys) : keys must be supplied in a character vector with no NAs
Please use ADD COMMENT or ADD REPLY to answer to previous reactions, as such this thread remains logically structured and easy to follow. I have now moved your reaction but as you can see it's not optimal.
Adding an answer should only be used for providing a solution to the question asked.
So your ProbeID.GSE59491$ENTREZ_GENE_ID is "numeric" while the error message states keys must be supplied in a character vector.
@ WouterDeCoster
Hi,
Sure. And, converting from numeric to character resolved the issue. Thank you.
Log in to answer this question.
So.... do you have any NAs in
ProbeID.GSE59491$ENTREZ_GENE_ID? What's the variable type?@WouterDeCoster
Hi,
There are no NAs and the class is also shown below: