Tool: EnhancedVolcano: Publication-ready volcano plots with enhanced colouring and labeling
25
gravatar for Kevin Blighe
9 months ago by
Kevin Blighe43k
Republic of Ireland
Kevin Blighe43k wrote:

last update: June 2, 2019

EnhancedVolcano

EnhancedVolcano is now on Bioconductor. The function was well received here on Biostars (primarily here: A: Volcano plot help code ), which originally gave me the impetus to go for a Bioconductor submission.

INSTALLATION

Devel (catch most recent changes):

devtools::install_github('kevinblighe/EnhancedVolcano')

Release (from Bioconductor):

BiocManager::install('EnhancedVolcano')

---------------------------------------------

ex12-1 ex10-1 ex13-1

---------------------------------------------

GitHub

https://github.com/kevinblighe/EnhancedVolcano

Bioconductor

https://bioconductor.org/packages/release/bioc/html/EnhancedVolcano.html

Vignette

https://bioconductor.org/packages/release/bioc/vignettes/EnhancedVolcano/inst/doc/EnhancedVolcano.html


Should anyone wish to provide feedback and / or suggestions for future development, please do so. Credit will always be given where it is due.

Kevin

ADD COMMENTlink modified 16 days ago • written 9 months ago by Kevin Blighe43k
1

Great tool, thanks for putting it together!

My DEseqDataSet is actually a set of peaks instead of transcripts that all have a unique identifier going out to 6 figures, I was wondering if there was a way to use selectLab() to create custom labels such as TF names for factors I know to bind within those peaks or even small representations of their PWMs - though the former would be sufficient for the moment - or does that have to come from an additional metadata column in DEseqDataSet? Thanks!

ADD REPLYlink modified 6 months ago • written 6 months ago by rbronste240
2

Hey, thanks for the comments. My colleague Myles back in London deserves the credit for the initial idea of putting this together. selectLab() will just match up to whatever you have passed to the required lab parameter. So, it can be anything really, but there is no functionality to automatically pull in TF names. That is a good idea, though, and it would show in a nice way which TFs were up- or down-regulated.

I mean, this package is only released for a few weeks at this stage, and I'm fairly open as to where it could be developed further. I was hoping to build something as comprehensive as the ComplexHeatmap package.

ADD REPLYlink written 6 months ago by Kevin Blighe43k

and i already used it....

ADD REPLYlink written 9 months ago by krushnach80500
1

Good work dude!

ADD REPLYlink written 9 months ago by Kevin Blighe43k

Hi Kevin,

Great tool! I've been pretty much using it for all my volcano plots. I wanted to know if there was a way to use EnhancedVolcanos with results from sleuth?

cheers!

ADD REPLYlink written 4 months ago by unawaz40

You're welcome. Yes, most likely there is a way. What are the columns in the output of Sleuth?

ADD REPLYlink written 4 months ago by Kevin Blighe43k

This is the output for sleuth, where b is equivalent to Log2FC

ens_gene ext_gene target_id pval qval b se_b mean_obs var_obs tech_var sigma_sq smooth_sigma_sq final_sigma_sq

ADD REPLYlink modified 4 months ago • written 4 months ago by unawaz40

Hey, well, you have at least 2 required columns:

  • ens_gene (label)
  • pval (y)

What is missing is the fold-change for x! I have never used Sleuth, however, I searched the Web forums and am surprised to see that the Sleuth developers do not output a fold-change for Sleuth's results. You may consider using a different differential expression analysis program.

ADD REPLYlink modified 4 months ago • written 4 months ago by Kevin Blighe43k

That's unfortunate. Thanks for looking though!

ADD REPLYlink written 4 months ago by unawaz40

You could likely still use the b value, in which case you should change the x-axis label too. You may want to read through this thread on Google Groups: https://groups.google.com/forum/#!topic/kallisto-sleuth-users/kWodd7CQejE (Harold Pimentel is Sleuth developer)

ADD REPLYlink written 4 months ago by Kevin Blighe43k

Hi Kevin,

Thanks again for the amazing tool! Can I use EnhancedVolcano with plotly? I assume it's built using ggplot2, and I've tried to do:

ggplotly(plot) where plot is a volcano plot made using EnhancedVolcano.

I get the following error message though:

Error in unique.default(x) :

unique() applies only to vectors

In addition: Warning messages:

1: In if (nchar(axisTitleText) > 0) { :

the condition has length > 1 and only the first element will be used

2: In if (nchar(axisTitleText) > 0) { :

the condition has length > 1 and only the first element will be used

Being able to use these volcano plots with plotly would be super useful! Especially when there are too mant DEGs and it really makes labeling messy.

Thanks!

ADD REPLYlink modified 3 months ago • written 3 months ago by unawaz40

EnhancedVolcano does indeed return a ggplot2 object, on which extra features can be added. It also utilises ggrepel - perhaps that is the missing link? I have not tried with plotly but will make an attempt later to see how to coerce the volcano object to work with plotly.

I believe there are a few tutorials around where plotly is used to generate a volcano, though. I think that Stephen Turner had one, but cannot find it right now.

ADD REPLYlink modified 3 months ago • written 3 months ago by Kevin Blighe43k

Hi Kevin, Thanks for this great package. A basic question: you specify in the vignette that the default p-value cut-off is 0.05, but from the default plot, it looks to me as if it were 0.005. Is this a misunderstanding on my part? Best wishes, Patrick

ADD REPLYlink written 16 days ago by patrick.kraetschmer10

Hey Patrick, thanks for noticing that. The default is actually:

pCutoff = 10e-6

I just need to update the text in the vignette!

ADD REPLYlink written 16 days ago by Kevin Blighe43k
1

Thanks, Kevin, I've just seen that, having read through the whole vignette: all makes sense!

ADD REPLYlink written 16 days ago by patrick.kraetschmer10

I am updating that part of the vignette right now, so, the change will come through on the Vignette on GitHub in the next few minutes: https://github.com/kevinblighe/EnhancedVolcano

It will be until Bioc 3.10 before it is changed on the main Bioconductor branch.

ADD REPLYlink written 16 days ago by Kevin Blighe43k

Awesome package, Kevin! Is it possible to remove the log2FC cutoff and lines?

ADD REPLYlink written 9 days ago by mehul.kumar0
1

Hey, thank you!

To remove all cut-off lines, you just need to do:

EnhancedVolcano(..., gridlines.major = FALSE, gridlines.minor = FALSE, ...)

If you want to disable the actual cut-off itself (and, thus, the colouring of the points based on the cut-off), then I may recommend the use of colCustom ? - there is an example in the vignette:

Another possibility is to set FCcutoff to something crazy like 1 000 000 such that nothing passes it.

ADD REPLYlink written 9 days ago by Kevin Blighe43k
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: 1633 users visited in the last hour