ctlab / phantasus

Visual exploratory analysis of gene expression data
https://alserglab.wustl.edu/phantasus/
Other
41 stars 15 forks source link

Possibility to add DESeq2 normalization and showing it on heatmap #138

Open shashj opened 5 years ago

shashj commented 5 years ago

@vlakam

I was just thinking of a possibility to add DESeq2 normalization (median-based) in phantasus and displaying that as a heatmap. I was going through phantasus code to do that, I found that to get a heatmap, one has to do the operations in javascript itself. Is it possible to do a matrix operation in R and then reflect it to the heatmap? I would be happy to contribute if that is the case.

Thanks

vlakam commented 5 years ago

Part of #44. If you willing to contribute to Phantasus, it would be very helpful to implement wrap for Deseq2 simillar as for limma here https://github.com/ctlab/phantasus/blob/master/R/limmaAnalysis.R And as for now (sic) there is no ETA for this tool. Sorry.

shashj commented 5 years ago

Yeah I would do that for DESeq2, but my question is a little bit different, I wanted to a differential expression calculation as well as show the normalized (by DESeq2) heatmap. The first part is doable as per my understanding but the second part needs to be written in javascript. Is that correct?

vlakam commented 5 years ago

That is correct. My point was that if you run into difficulties with Javascript part (because it's kinda actually huge to understand), we would implement that part by ourself. If you share your ideas about UI among your PR it would be also a huge help.

shashj commented 5 years ago

Got it thanks

assaron commented 5 years ago

@shashj we also consider implementing limma+voom based pipeline, as there visualization and differential expression are coupled better, compared to DESeq2, where rlog transformation is better for visualization, and raw counts should be used for differential expression.

assaron commented 5 years ago

On the second glance, implementing the geometric mean normalization isn't that hard, the DESeq2 implementation is pretty straightforward: https://github.com/mikelove/DESeq2/blob/master/R/core.R#L481