Как правильно назначить низкие, средние и высокие цветовые ограничения с помощью пакета heatmply R для интерактивной тепловой карты - PullRequest
0 голосов
/ 18 февраля 2019

Основываясь на текущем проекте визуализации экспериментов NGS и результатах анализа функционального обогащения, я пытаюсь создать интерактивную диаграмму тепловых карт конкретных биологических процессов-названий в строках и конкретных аннотированных генов в столбцах, используя R-пакет heatmaply-значения, по сути, представляют собой кратные изменения log2, положительные или отрицательные значения, где 0 означает отсутствие корреляции / ассоциации конкретного гена с конкретным биологическим механизмом:

dd <- read.table("bim.test.trial.txt",sep="\t",header = T,row.names=1)

 head(dd)
       regulation.of.defense.response.to.virus
Ifng                                  3.332965
Il6                                   0.000000
Havcr2                                2.436155
Lgals9                                2.058915
Tlr3                                  0.000000
Tlr9                                  0.000000
       regulation.of.cell.adhesion alpha.beta.T.cell.differentiation
Ifng                      3.332965                          3.332965
Il6                       3.994865                          3.994865
Havcr2                    2.436155                          0.000000
Lgals9                    2.058915                          0.000000
Tlr3                      0.000000                          0.000000
Tlr9                      0.000000                          0.000000
...

heatmaply(t(dd),
          fontsize_col = 7.5,
          col = cool_warm(50),
          scale_fill_gradient_fun = ggplot2::scale_fill_gradient2(low = "blue", mid="white",high = "red", midpoint = 0, limits = c(-2, 2)),
          main = 'Trial_test_heatmap')

# also a reproducible example:

set.seed(256)
xx2 <- matrix(rnorm(16),8,8)

range(xx2)
[1] -1.867392  1.654713

#first heatmap

heatmaply(xx2,
fontsize_col = 7.5,
col = cool_warm(50),
scale_fill_gradient_fun = ggplot2::scale_fill_gradient2(low = "blue", mid="white",high = "red", midpoint = 0, limits = c(-1, 1)), main = 'Trial_test_heatmap')

# second

heatmaply(xx2,
fontsize_col = 7.5,
col = cool_warm(50),
scale_fill_gradient_fun = ggplot2::scale_fill_gradient2(low = "blue", mid="white",high = "red", midpoint = 0, limits = c(-2, 2)), main = 'Trial_test_heatmap')

sessionInfo()
R version 3.5.0 (2018-04-23)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)

Matrix products: default

locale:
[1] LC_COLLATE=Greek_Greece.1253  LC_CTYPE=Greek_Greece.1253   
[3] LC_MONETARY=Greek_Greece.1253 LC_NUMERIC=C                 
[5] LC_TIME=Greek_Greece.1253    

attached base packages:
[1] grid      stats     graphics  grDevices utils     datasets  methods  
[8] base     

other attached packages:
[1] heatmaply_0.15.2      viridis_0.5.1         viridisLite_0.3.0    
[4] plotly_4.8.0          ggplot2_3.1.0         circlize_0.4.5       
[7] ComplexHeatmap_1.20.0

loaded via a namespace (and not attached):
 [1] httr_1.4.0          tidyr_0.8.2         jsonlite_1.6       
 [4] foreach_1.4.4       gtools_3.8.1        shiny_1.2.0        
 [7] assertthat_0.2.0    stats4_3.5.0        yaml_2.2.0         
[10] robustbase_0.93-3   pillar_1.3.1        lattice_0.20-38    
[13] glue_1.3.0          digest_0.6.18       promises_1.0.1     
[16] RColorBrewer_1.1-2  colorspace_1.3-2    httpuv_1.4.5       
[19] htmltools_0.3.6     plyr_1.8.4          pkgconfig_2.0.2    
[22] GetoptLong_0.1.7    xtable_1.8-3        purrr_0.2.5        
[25] mvtnorm_1.0-8       scales_1.0.0        webshot_0.5.1      
[28] gdata_2.18.0        whisker_0.3-2       later_0.7.5        
[31] tibble_1.4.2        withr_2.1.2         nnet_7.3-12        
[34] lazyeval_0.2.1      mime_0.6            magrittr_1.5       
[37] crayon_1.3.4        mclust_5.4.2        MASS_7.3-51.1      
[40] gplots_3.0.1        class_7.3-14        Cairo_1.5-9        
[43] tools_3.5.0         registry_0.5        data.table_1.11.8  
[46] GlobalOptions_0.1.0 stringr_1.3.1       trimcluster_0.1-2.1
[49] kernlab_0.9-27      munsell_0.5.0       cluster_2.0.7-1    
[52] fpc_2.1-11.1        bindrcpp_0.2.2      compiler_3.5.0     
[55] caTools_1.17.1.1    rlang_0.3.0.1       iterators_1.0.10   
[58] rstudioapi_0.8      rjson_0.2.20        htmlwidgets_1.3    
[61] crosstalk_1.0.0     labeling_0.3        bitops_1.0-6       
[64] gtable_0.2.0        codetools_0.2-15    flexmix_2.3-14     
[67] TSP_1.1-6           reshape2_1.4.3      R6_2.3.0           
[70] seriation_1.2-3     gridExtra_2.3       knitr_1.21         
[73] prabclus_2.2-6      dplyr_0.7.8         bindr_0.1.1        
[76] KernSmooth_2.23-15  dendextend_1.9.0    shape_1.4.4        
[79] stringi_1.2.4       modeltools_0.2-22   Rcpp_1.0.0         
[82] gclus_1.3.1         DEoptimR_1.0-8      tidyselect_0.2.5   
[85] xfun_0.4            diptest_0.75-7 

Однако, если вы видитемое прикрепленное снимок png-изображения, значение 0, то есть желаемая средняя точка, не отображается белым цветом в теле карты тепловыделения, и нет белого цвета, а также, поскольку множество дискретных значений равны нулю во многих генах, ониокрашен другим цветом, то есть синим, определенным в нижнем пределе в функции scale_fill_gradient2 из ggplot2-

, таким образом, есть способ решить эту проблему?и правильно указать нижний, средний и верхний пределы цветовой палитры?

Заранее спасибо

Efstathios

output of heatmply function

1 Ответ

0 голосов
/ 18 февраля 2019

Ваш диапазон данных шире (> 2), чем диапазон цветов (от -2 до 2).Я полагаю, вы видите ошибку в пакете.Пожалуйста, используйте диапазон в scale_fill_gradient_fun, который включает ВСЕ ваши данные.например:


heatmaply(t(dd),
          fontsize_col = 7.5,
          col = cool_warm(50),
          scale_fill_gradient_fun = ggplot2::scale_fill_gradient2(low = "blue", mid="white",high = "red", midpoint = 0, limits = c(-4, 4)),
          main = 'Trial_test_heatmap')

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...