Dear all,
I made an annotation table for beadchip data as following (for the symbol as an example):
if(version==3) { require(illuminaHumanv3.db) # Use appropriate annotation DB for expression arrays kegg <- illuminaHumanv3PATH geneName <- illuminaHumanv3GENENAME hugo <- illuminaHumanv3SYMBOL pq <- illuminaHumanv3PROBEQUALITY }
<skipped code>
## grabs HUGO symbol for the gene mapped <- mappedkeys(hugo) hugo2 <- as.list(hugo[mapped]) hugoDF <- data.frame(PROBE_ID = as.character(names(hugo2)), SYMBOL = as.character(hugo2))
And the same for other entries, with later merging them like this:
expressionAnnotationData <- merge(keggDF, geneNameDF,by.x="PROBE_ID", by.y="PROBE_ID", all = T) expressionAnnotationData <- merge(expressionAnnotationData, hugoDF, by.x="PROBE_ID", by.y="PROBE_ID", all = T) expressionAnnotationData <- merge(expressionAnnotationData, pqDF, by.x="PROBE_ID", by.y="PROBE_ID", all = T)
However, it has A LOT of probe ids not mapped to anything. Initially I thought that this was a case of probes not having proper matches, but the table has plenty of "PERFECT" quality probes:
PROBE_ID keggID keggName geneNameID SYMBOL QUALITY
31545 ILMN_1670545 <NA> <NA> <NA> <NA> Perfect 31546 ILMN_1670589 <NA> <NA> <NA> <NA> Bad 31547 ILMN_1670625 <NA> <NA> <NA> <NA> Perfect 31548 ILMN_1670641 <NA> <NA> <NA> <NA> No match 31549 ILMN_1670666 <NA> <NA> <NA> <NA> Bad 31550 ILMN_1670668 <NA> <NA> <NA> <NA> Perfect 31551 ILMN_1670674 <NA> <NA> <NA> <NA> Bad 31552 ILMN_1670715 <NA> <NA> <NA> <NA> Perfect 31553 ILMN_1670716 <NA> <NA> <NA> <NA> Bad 31554 ILMN_1670737 <NA> <NA> <NA> <NA> Perfect 31555 ILMN_1670757 <NA> <NA> <NA> <NA> Bad 31556 ILMN_1670800 <NA> <NA> <NA> <NA> Bad 31557 ILMN_1670805 <NA> <NA> <NA> <NA> Good****
Am I doing something wrong in extracting annotation? If not, is this normal and what should I do?
Thank you
Slava
Note that I edited my answer to include where the 'ks' object came from.
Thank you very much!