I'm using the Enhanced Volcano package to represent my DE proteins on a volcano plot. Drawing the plot isn't an issue but selectively labeling points of interest is. The two points I want to label are present in the data and exceed the cutoff I have set for PCutoff and FCcutoff. According the the package vignette the necessary code is
EnhancedVolcano(res,
lab = rownames(res),
x = 'log2FoldChange',
y = 'pvalue',
selectLab = c('TMEM176B','ADH1A'),
xlab = bquote(~Log[2]~ 'fold change'),
pCutoff = 10e-14,
FCcutoff = 2.0,
pointSize = 4.0,
labSize = 6.0,
shape = c(4, 35, 17, 18),
colAlpha = 1,
legendPosition = 'right',
legendLabSize = 14,
legendIconSize = 5.0)
My code is
EnhancedVolcano(volcano_rd,
lab = 'volcano_rd$DE_Proteins',
x = 'log2FC',
y = 'pvalue',
xlim = c(-5, 5),
ylim = c(0, 8),
selectLab = c('RRP1B', 'PLIN2'),
xlab = bquote(~Log[2]~ 'FC'),
pointSize = 3.0,
labSize = 6.0,
pCutoff = 0.0001,
FCcutoff = 1.2,
cutoffLineType = 'twodash',
cutoffLineWidth = 0.8,
col=c('orange', 'green','pink', 'blue'),
colAlpha = 1,
legendPosition = 'right',
legendLabSize = 16,
legendIconSize = 5.0)
dev.off()
I think the issue is with the line
`xlab = bquote(~Log[2]~ 'FC')`,
but I don't understand what this line does and don't know what to change. FC is the column in my data which I then perform the log2 transformation on.
The structure of my data
str(volcano_rd)
'data.frame': 1191 obs. of 4 variables:
$ pvalue : num 0.007987 0.000869 0.00104 0.001904 0.003591 ...
$ log2FC : num 0.481 0.383 0.766 0.595 0.773 ...
$ FC : num 1.4 1.3 1.7 1.51 1.71 ...
$ DE_Protein: chr "AAAS" "AARS" "ABCB6" "ABCB7" ...
sessionInfo output
sessionInfo()
R version 4.0.2 (2020-06-22) Platform: x86_64-w64-mingw32/x64 (64-bit) Running under: Windows 10 x64 (build 18363)
Matrix products: default
locale: [1] LC_COLLATE=English_Ireland.1252 LC_CTYPE=English_Ireland.1252 LC_MONETARY=English_Ireland.1252 [4] LC_NUMERIC=C LC_TIME=English_Ireland.1252
attached base packages: [1] grid parallel stats4 stats graphics grDevices utils datasets methods base
other attached packages:
[1] ggpubr_0.4.0.999 EnhancedVolcano_1.6.0 ggrepel_0.8.2 pheatmap_1.0.12 data.table_1.13.4
[6] RColorBrewer_1.1-2 NMF_0.23.0 cluster_2.1.0 rngtools_1.5 pkgmaker_0.32.2
[11] registry_0.5-1 limma_3.44.3 preprocessCore_1.50.0 VennDiagram_1.6.20 futile.logger_1.4.3
[16] splitstackshape_1.4.8 magrittr_2.0.1 AnnotationHub_2.20.2 BiocFileCache_1.12.1 dbplyr_2.0.0
[21] clusterProfiler_3.16.1 GO.db_3.11.4 AnnotationDbi_1.50.3 IRanges_2.22.2 S4Vectors_0.26.1
[26] Biobase_2.48.0 BiocGenerics_0.34.0 reshape_0.8.8 forcats_0.5.0 stringr_1.4.0
[31] dplyr_1.0.2 purrr_0.3.4 readr_1.4.0 tidyr_1.1.2 tibble_3.0.4
[36] ggplot2_3.3.2 tidyverse_1.3.0 plyr_1.8.6 biomaRt_2.44.4
loaded via a namespace (and not attached):
[1] readxl_1.3.1 backports_1.2.0 fastmatch_1.1-0 igraph_1.2.6
[5] splines_4.0.2 BiocParallel_1.22.0 gridBase_0.4-7 urltools_1.7.3
[9] digest_0.6.25 foreach_1.5.1 htmltools_0.5.0 GOSemSim_2.14.2
[13] viridis_0.5.1 fansi_0.4.1 memoise_1.1.0 doParallel_1.0.16
[17] openxlsx_4.2.3 graphlayouts_0.7.1 modelr_0.1.8 askpass_1.1
[21] enrichplot_1.8.1 prettyunits_1.1.1 colorspace_2.0-0 blob_1.2.1
[25] rvest_0.3.6 rappdirs_0.3.1 haven_2.3.1 xfun_0.17
[29] crayon_1.3.4 jsonlite_1.7.2 scatterpie_0.1.5 iterators_1.0.13
[33] glue_1.4.2 polyclip_1.10-0 gtable_0.3.0 car_3.0-10
[37] abind_1.4-5 scales_1.1.1 DOSE_3.14.0 futile.options_1.0.1
[41] DBI_1.1.0 rstatix_0.6.0 Rcpp_1.0.5 viridisLite_0.3.0
[45] xtable_1.8-4 progress_1.2.2 gridGraphics_0.5-1 foreign_0.8-80
[49] bit_4.0.4 europepmc_0.4 httr_1.4.2 fgsea_1.14.0
[53] ellipsis_0.3.1 pkgconfig_2.0.3 XML_3.99-0.5 farver_2.0.3
[57] labeling_0.4.2 ggplotify_0.0.5 tidyselect_1.1.0 rlang_0.4.7
[61] reshape2_1.4.4 later_1.1.0.1 munsell_0.5.0 BiocVersion_3.11.1
[65] cellranger_1.1.0 tools_4.0.2 downloader_0.4 cli_2.2.0
[69] generics_0.1.0 RSQLite_2.2.1 broom_0.7.3 ggridges_0.5.2
[73] evaluate_0.14 fastmap_1.0.1 yaml_2.2.1 knitr_1.30
[77] bit64_4.0.5 fs_1.5.0 tidygraph_1.2.0 zip_2.1.1
[81] ggraph_2.0.4 mime_0.9 formatR_1.7 DO.db_2.9
[85] xml2_1.3.2 compiler_4.0.2 rstudioapi_0.13 curl_4.3
[89] interactiveDisplayBase_1.26.3 ggsignif_0.6.0 reprex_0.3.0 tweenr_1.0.1
[93] stringi_1.5.3 lattice_0.20-41 Matrix_1.2-18 vctrs_0.3.5
[97] pillar_1.4.7 lifecycle_0.2.0 BiocManager_1.30.10 triebeard_0.3.0
[101] cowplot_1.1.0 httpuv_1.5.4 qvalue_2.20.0 R6_2.5.0
[105] promises_1.1.1 rio_0.5.16 gridExtra_2.3 codetools_0.2-16
[109] lambda.r_1.2.4 MASS_7.3-51.6 assertthat_0.2.1 openssl_1.4.3
[113] withr_2.3.0 hms_0.5.3 rmarkdown_2.6 rvcheck_0.1.8
[117] carData_3.0-4 ggforce_0.3.2 shiny_1.5.0 lubridate_1.7.9.2
Any suggestions would be appreciated.
Peter

Yes they are. Values used to plot each are below
Can you add
drawConnectors = TRUE?So my code is now this
Still no labels.
Kevin, is there an easy way to send you my entire dataset and that way you can reproduce the full volcano plot I see? Obviously the dataset contains more than 2 points.
What I really want to achieve is to label only the points which exceed the LogFC and pvalue thresholds that I set. The 2 named in my code below are the 2 most extreme examples.
Wait the issue is that you are passing a character string to
lab. You just need to change it to:[without the aostrophes]
Tried that but now it doesn't draw the plot at all. It resulted in the following error.
the output from traceback()
The code I used is
It should be 'DE_Protein' it seems
and we have a winner. Thanks for all your help.