heatmap of genes based on enriched GO categories
4
0
Entering edit mode
Bogdan ▴ 670
@bogdan-2367
Last seen 6 months ago
Palo Alto, CA, USA

Dear all, 

given a set of genes that are differentially expressed, which tool would you recommend in order to display a heatmap of the genes clustered based on a shared GO category (eg "chromatin") ? 

thank you, 

 

bogdan

 

 

goexpress gopro • 3.8k views
ADD COMMENT
0
Entering edit mode

Dear Gordon, thanks, your comment helps a lot. I have only came across VISHIC : http://biit.cs.ut.ee/vishic/app,

and of course,  it would have helped to have an R/BioC equivalent package ;)

ADD REPLY
4
Entering edit mode
kevin.rue ▴ 350
@kevinrue-6757
Last seen 23 days ago
University of Oxford

Dear Bodgan,

I don't have much to add after Gordon :)

I'll just point out that GOexpress was intended to visualise the expression of genes associated with a single GO category. As Gordon just stated, advanced customisation is generally done by hand.

Regarding customised heat map, you might want to have a look at ComplexHeatmap. The learning curve may feel a bit steep, and you'll have to define a lot of of settings by hand, but that is the obvious price to pay for the highest degree of heat map customisation that I currently know in R. It is very much worth getting familiar with it, as it is applicable to other large omics data sets.

Here is a figure that I have recently produced using ComplexHeatmap, to give you an idea. The manual of ComplexHeatmap linked above will also teach you to produce multiple parallel heat maps in the same figure, and a lot more.

All the best,
Kevin

 

ComplexHeatmap example

ADD COMMENT
3
Entering edit mode
@gordon-smyth
Last seen 38 minutes ago
WEHI, Melbourne, Australia

I use coolmap(), see ?coolmap. If you're using edgeR to analyse RNA-seq data, then:

logCPM <- cpm(y, prior.count=3)
coolmap(logCPM[mygenes,])

where mygenes is an index vector for the genes you want the heatmap for.

ADD COMMENT
0
Entering edit mode

Dear Gordon, thank you for the quick reply. Yes, it helps, as it simplifies the complexity of heatmap.2 or other functions.

However, my goal is a bit different : i would like to cluster both by expression level and GO terms; considering that I have a data.frame as the one below, would like to cluster the genes also based on GO "chromatin" and "cell cycle". Any suggestions on how i can do it ? thanks !

z <- data.frame(gene=c("gene_a","gene_b"), e1=c(3,6), e2=c(5,10), e3=c(7,1), e4=c(9,2), go=c("chromatin","cell cycle")) 

 

ADD REPLY
1
Entering edit mode

There's no tool for doing that. If you are trying to reproduce plots that you see in the biology literature, with genes on a heatmap grouped by annotation term, that is always done by hand as far as I know.

ADD REPLY
1
Entering edit mode
Bogdan ▴ 670
@bogdan-2367
Last seen 6 months ago
Palo Alto, CA, USA

Dear Kevin, thank you for your suggestions, and for sharing the example of the heatmap produced by ComplexHeatmap. It is very elegant and very convincing to start using ComplexHeatmap package.

talking about GOexpress: congratulations, and thanks for developing it, it does a nice work ! If I may bring a little suggestion : it would be nice if (at some moment in the future) the function Heatmap_GO provides different options for clustering the rows and the columns based on different metrics, and the option for "non-clustering".

thanks and happy Sunday ! 

  

ADD COMMENT
0
Entering edit mode

Thanks! I am always more than happy to take suggestions to further develop GOexpress; in fact, I believe it got to the stage where more than half the features are based on feedback, and I like it this way :)

I must admit: there are many ways in which I would like to consolidate GOexpress before extending it. As my first public R package, I wasn't as familiar with S4 classes and methods as I am now. As a result, I am very keen to "clean" the existing methods, which ultimately would make it a lot easier to plug in different metrics and controls (and fetch/supply GO annotations!). However, this will require some time to sit down and plan it properly.

Best wishes

ADD REPLY
0
Entering edit mode
Bogdan ▴ 670
@bogdan-2367
Last seen 6 months ago
Palo Alto, CA, USA

Hi Kevin, it is a great project, and we wish you lots of success on its development ;) particularly, as Gordon mentioned, as there is no tool for bi-clustering of the genes function of GO terms, that would be an useful and very novel addition to GOexpress too ;)

And i am glad that you could develop your project by testing it on the best RNA-seq datasets available. When i was a postdoc at UCSD, i've been aiming and willing to develop a BioC package for 5C data analysis, but the quality of the data was not always great; nevertheless, quite exciting ;)

ADD COMMENT

Login before adding your answer.

Traffic: 1066 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6