Just FYI, this is a 5 year old question.
Hello all,
I am doing GSEA analysis. I have done with human successfully.
However, this time, I am trying to run with my mouse gene. I realized that these mSIGDB are annotated with only human.. I downloaded the msigDB for mouse from genepattern website.
However, GSEA program didn't allow me to use this downloaded data for my analysis...
Could you please someone help me with this?
I am creating with my *.rnk (rank file) for this analysis.
6 answers
A mouse verson of the MSigDB is given at http://bioinf.wehi.edu.au/MSigDB/
We found that no single homology resource like Ensembl/BiomaRt was sufficiently comprehensive to create a mouse version of MSigDB, especially for non-protein coding genes. Just to give one example, Ensembl does not map XIST to Xist. We found that the integrated collection of many resources provided by HCOP provided the best mapping.
Thanks for your concern, but I can read dates too. Note:
- This question was active in the past 4 months (including by you!)
- This question did not have a definitive or accepted answer
- The topic is of current interest with a similar question just 2 hours ago GSEA Positional Gene sets for mouse chromosomes
- A new link to this question was placed by another Moderator just 20 minutes ago (see previous link)
GSEA never goes out style.
It was an FYI in case you hadn't noticed. Glad you noticed the date.
Good to know. Is there a reference (or code) one could cite if using that murine MSigDB version?
You could cite the camera paper: https://doi.org/10.1093/nar/gks461
I'd encourage you to cite the Broad Institute MSigDB publication as well.
Have a look at the msigdbr R package. It easily converts mouse gene names to human homolog equivalents.
Jackson Lab has the Vertebrate Homology resource for converting between homologous human and mouse genes (most of the time, it's just adjusting the case).
Update: you can also try msigdbr which already solved the multi-species conversion issue (there are a number of caveats to the process that are not very obvious): MSigDB for Multiple Organisms in a Tidy Data Format
Generally I use Ensembl Biomart (but you can substitute your favorite gene ID conversion tool here) to convert all of the gene names in each gene signature in the *.gmx or *.gmt, from human to mouse. I then use the mouse IDs to make a custom *.gmx or *.gmt file.
It's convenient to do this in R if you know how but not necessary, it works perfectly well do to copy-paste into the web interface.
Word of warning: look out for genes that don't convert using automated tools. Often you will come across genes that actually do have mouse orthologs but are not annotated in Biomart. You can manually add these genes to the signatures by a quick Google search.
Here is a solution using biomaRt (in R) from Ensembl which creates a table that lists all mouse genes and the respective human orthologs. Credits mainly to Dave Tang's blog where the idea is from.
library(biomaRt)
Mouse2Human <- function(MouseGenes){
human = useMart("ensembl", dataset = "hsapiens_gene_ensembl")
mouse = useMart("ensembl", dataset = "mmusculus_gene_ensembl")
genesMousetoHuman = getLDS(attributes = c("ensembl_gene_id","mgi_symbol"),
filters = "mgi_symbol",
values = MouseGenes ,
mart = mouse,
attributesL = c("ensembl_gene_id", "hgnc_symbol"),
martL = human,
uniqueRows = TRUE)
colnames(genesMousetoHuman) <- c("Mouse.Gene_ID", "MGI", "Human.Gene_ID", "HGNC")
return(genesMousetoHuman)
}
## Get mouse genes
mmusculus_genes <- getBM(attributes = c("ensembl_gene_id", "mgi_symbol"),
mart = useMart("ensembl", dataset = "mmusculus_gene_ensembl"),
useCache = FALSE)
## create the conversion table
Mouse2HumanTable <- Mouse2Human(MouseGenes = mmusculus_genes$mgi_symbol)
Output:
> Mouse2HumanTable
Mouse.Gene_ID MGI Human.Gene_ID HGNC
1 ENSMUSG00000070979 Actl7a ENSG00000187003 ACTL7A
2 ENSMUSG00000069911 Insyn2b ENSG00000204767 INSYN2B
3 ENSMUSG00000028173 Wls ENSG00000116729 WLS
4 ENSMUSG00000094356 Igkv8-28 ENSG00000211598 IGKV4-1
5 ENSMUSG00000104769 Igkv8-34 ENSG00000211598 IGKV4-1
6 ENSMUSG00000076581 Igkv8-26 ENSG00000211598 IGKV4-1
7 ENSMUSG00000095794 Igkv6-17 ENSG00000211598 IGKV4-1
8 ENSMUSG00000064370 mt-Cytb ENSG00000198727 MT-CYB
9 ENSMUSG00000022099 Dmtn ENSG00000158856 DMTN
10 ENSMUSG00000033717 Adra2a ENSG00000150594 ADRA2A
11 ENSMUSG00000022016 Akap11 ENSG00000023516 AKAP11
(...)
You don't need this line within the Mouse2Human function:
MouseGenes <- as.character(mmusculus_genes$mgi_symbol)
If it is to deal with a scenario where MouseGenes is undefined, mmusculus_genes will need to be initialized within the function as well, or the function ends up having undeclared dependencies.
You're right, not sure how this non-sense line made it in there. Edited.
I tried GSEA with mouse data both by mapping the homologs using a proper method (ensembl/biomaRt as suggested here), and also by simply converting sentence case gene names (i.e. Pdcd1) to upper case (i.e. PDCD1). In my experience, these approaches work similarly.
Using uppercase letters, for the most part, works because human gene names are simply a capitalized version of mouse genes. Although this "conversion" may result in losing a few genes, since you are looking at a constellation of genes in GSEA, I don't think it is a big problem.
Log in to answer this question.
I will try to capitalize all my mouse genes. Sometimes, it can fool the software to treat the mouse gene as human gene. If you want a even better approach, you can check the homology and convert the mouse to human. Usually capitalize are simple enough.
Thank you so much!
Yes. I will try.. :)