Question: CluserProfiler message "No gene can be mapped"
1
gravatar for ARich
2.4 years ago by
ARich90
United States
ARich90 wrote:

Hi Biostar users,

I am working with clusterprofiler enrichKegg function

KEGG_all = enrichKEGG(regulated.gene$entrez, organism="human")

I have used library(org.Hs.eg.db) to convert gene names(Symbols) to Entrez ID which is the possible input to use this function.

However I am seeing strange message and I am not sure what could be the reason?

--> No gene can be mapped....
--> Expected input gene ID: 7364,127,574537,5538,4351,221
--> return NULL...

Does this means the IDs I am providing have no pathways associated? In that case its not correct because entrez ids I am using have pathways associated except few which don't have are listed as NA.

names=c("57801","2152","54873","7412","148867","1435","90874","NA","2702","NA","1520,","3371","7185","26468","286336","NA","22829")

Due to this I am unable to understand why this message is displayed?

Looking forward for some help.

R • 5.4k views
ADD COMMENTlink modified 4 months ago by wm470 • written 2.4 years ago by ARich90
2

Are you sure those entrez ID's are for human genes? I checked a few and none seemed to be human proteins.

ADD REPLYlink modified 2.4 years ago • written 2.4 years ago by genomax87k

I am quite sure. The reason is because I cant ever find these IDs in my file. --> No gene can be mapped.... --> Expected input gene ID: 7364,127,574537,5538,4351,221 --> return NULL... I used standard conversion from of Symbols to Entrez ids. res$symbol = mapIds(org.Hs.eg.db, keys=row.names(res), column="SYMBOL", keytype="ENSEMBL", multiVals="first")

res$entrez = mapIds(org.Hs.eg.db, keys=row.names(res), column="ENTREZID", keytype="ENSEMBL", multiVals="first"

res$name = mapIds(org.Hs.eg.db, keys=row.names(res), column="GENENAME", keytype="ENSEMBL", multiVals="first")

Which one you checked? the one where its No gene can be mapped?

Thanks

ADD REPLYlink modified 2.4 years ago • written 2.4 years ago by ARich90

https://www.ncbi.nlm.nih.gov/protein/7364
https://www.ncbi.nlm.nih.gov/protein/5538

Other ID's in the list above seem to be nucleotide ID's.

ADD REPLYlink written 2.4 years ago by genomax87k

These genes are from database, not your input gene list.

> gene <- c("7364", "127", "574537", "5538", "4351", "221")
> bitr(gene, "ENTREZID", "SYMBOL", OrgDb = org.Hs.eg.db)
'select()' returned 1:1 mapping between keys and columns
  ENTREZID  SYMBOL
1     7364  UGT2B7
2      127    ADH4
3   574537  UGT2A2
4     5538    PPT1
5     4351     MPI
6      221 ALDH3B1
ADD REPLYlink written 4 months ago by wm470

Hello,

I am also using same function enrichKEGG. Can you please explain how problem was resolved for error

>kegg_enrich <-enrichKEGG(gene = names(log_counts, org = 'uma')
"No gene can be mapped....
--> Expected input gene ID: UMAG_02115,UMAG_00118,UMAG_03692,UMAG_11744,UMAG_02508,UMAG_06105
--> return NULL
ADD REPLYlink modified 23 months ago by genomax87k • written 23 months ago by sbb10

I'm also getting the same error when trying to use the enrichMKEGG function. The same list of ENTREZ IDs work for enrichKEGG, but not enrichMKEGG. I've tried changing the limits of GSSize but still no solution.

> head(geneset_d1$ENTREZID)
[1] "12842"  "13032"  "20715"  "17329"  "12309"  "140474"


   > oraKEGG1 <- enrichKEGG(gene = geneset_d1$ENTREZID, 
+                         organism = "mmu",
+                         pvalueCutoff = 0.05,
+                         qvalueCutoff = 0.25,
+                         pAdjustMethod = "BH",
+                         universe = NULL,
+                         minGSSize = 10,
+                         maxGSSize = 500)
> dim(oraKEGG1)
[1] 19  9



  > ora_mKEGG1 <- enrichMKEGG(gene = geneset_d1$ENTREZID, 
+                         organism = "mmu",
+                         pvalueCutoff = 0.05,
+                         qvalueCutoff = 0.25,
+                         pAdjustMethod = "BH",
+                         universe = NULL,
+                         minGSSize = 1,
+                         maxGSSize = 2000)
--> No gene can be mapped....
--> Expected input gene ID: 14433,67834,14751,14380,230163,17448
--> return NULL...

Can anyone help with this?

ADD REPLYlink modified 4 months ago • written 4 months ago by elizabeth.jennings0

Because None of these genes are included in KEGG module database. You can check the gene_list using bitr_kegg :

> gene <- c("12842", "13032", "20715", "17329", "12309", "140474")
> bitr_kegg(gene, fromType = "kegg", toType = "Module", organism = "mmu")
Reading KEGG annotation online:

trying URL 'http://rest.kegg.jp/link/mmu/module'
downloaded 29 KB

Reading KEGG annotation online:

trying URL 'http://rest.kegg.jp/list/module'
downloaded 24 KB

[1] kegg   Module
<0 rows> (or 0-length row.names)
Warning message:
In bitr_kegg(gene, fromType = "kegg", toType = "Module", organism = "mmu") :
  100% of input gene IDs are fail to map...
ADD REPLYlink written 4 months ago by wm470

Thanks your your reply! I checked my genelists and for all of them 100% of input genes failed to map. Would this be expected or is there potentially a problem with the gene ids that I have? For example, one genelist has 166 genes - how likely is it that none of these were in the KEGG module database? Many thanks!

ADD REPLYlink written 4 months ago by elizabeth.jennings0

It could be none of your 166 genes were in KEGG module database (a manual curated database). you can try KEGG Pathway, or other databases.

ADD REPLYlink written 4 months ago by wm470
0
gravatar for ARich
2.4 years ago by
ARich90
United States
ARich90 wrote:

I got the answer to my problem. I was using some cutoff. After the cutoff few comparison had no genes left for down-regulated list This was kind of warning message more that a error.

ADD COMMENTlink written 2.4 years ago by ARich90
0
gravatar for wangchangliang0209
20 months ago by
wangchangliang02090 wrote:

Hi sbbinfo,

I found that there is something wrong with the help document of enrichKEGG. The "gene" parameter is not Entrez gene ID for other organisms (not "hsa"). For "uma", you should input a vector in "UMAG_02115, UMAG_00118" format, not Entrez gene ID vector.

Best wishes.

ADD COMMENTlink written 20 months ago by wangchangliang02090
0
gravatar for wm
4 months ago by
wm470
China
wm470 wrote:

"No gene can be mapped...."

it is because, None of the gene input was included in the database (KEGG Pathway or KEGG module).

We can check the gene before enrichment analysis.

> bitr_kegg(gene, fromType = "kegg", toType = "Path", organism = "hsa")
> bitr_kegg(gene, fromType = "kegg", toType = "Module", organism = "hsa")

source code for the function: DOSE::enricher_internal()

## file: DOSE/R/enricher_internal.R
## line30-44


## query external ID to Term ID
gene <- as.character(unique(gene))
qExtID2TermID <- EXTID2TERMID(gene, USER_DATA)
qTermID <- unlist(qExtID2TermID)
if (is.null(qTermID)) {
    message("--> No gene can be mapped....")

    p2e <- get("PATHID2EXTID", envir=USER_DATA)
    sg <- unlist(p2e[1:10])
    sg <- sample(sg, min(length(sg), 6))
    message("--> Expected input gene ID: ", paste0(sg, collapse=','))

    message("--> return NULL...")
    return(NULL)
}
ADD COMMENTlink written 4 months ago by wm470
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 2.3.0
Traffic: 1586 users visited in the last hour