tidyHeatmap(一):帶你繪制高端熱圖

前言

Immugent最近注意到,生信寶庫好久沒有更新有關(guān)基礎(chǔ)繪圖的推文了,于是專門去找了最近常常碰到的專注于繪制熱圖的tidyHeatmap包的教程來學(xué)習(xí)了一下,現(xiàn)在分享給大家。

其實(shí)繪制熱圖的R包有很多了,從最開始的Pheatmap包,再到后來的ComplexHeatmap包,都是專門用來繪制熱圖的。事實(shí)上,今天介紹的這款tidyHeatmap包是在ComplexHeatmap包的基礎(chǔ)上進(jìn)行優(yōu)化,簡化了很多的操作。但是值得注意的是,tidyHeatmap包需要安裝的依賴包較多,也需要最新的版本,最好安裝GitHub版本,否則下面的部分功能使用不了。


代碼展示

安裝tidyHeatmap包,并導(dǎo)入示例數(shù)據(jù)。。

devtools::install_github("stemangiola/tidyHeatmap")

library(tidyHeatmap)

mtcars_tidy <- 
    mtcars |> 
    as_tibble(rownames="Car name") |> 
    
    # Scale
    mutate_at(vars(-`Car name`, -hp, -vs), scale) |>
    
    # tidyfy
    pivot_longer(cols = -c(`Car name`, hp, vs), names_to = "Property", values_to = "Value")

mtcars_tidy

淺畫一個熱圖

mtcars_heatmap <- 
    mtcars_tidy |> 
    heatmap(`Car name`, Property, Value,    scale = "row"   ) |>
    add_tile(hp)

mtcars_heatmap

#Saving
mtcars_heatmap |> save_pdf("mtcars_heatmap.pdf")
圖片

Grouping and splitting

# Make up more groupings
mtcars_tidy_groupings = 
    mtcars_tidy |>
    mutate(property_group = if_else(Property %in% c("cyl", "disp"), "Engine", "Other"))

mtcars_tidy_groupings |> 
    group_by(vs, property_group) |>
    heatmap(`Car name`, Property, Value,    scale = "row"   ) |>
    add_tile(hp)
圖片

provide colour palettes to groupings

mtcars_tidy_groupings |> 
    group_by(vs, property_group) |>
    heatmap(
        `Car name`, Property, Value ,   
        scale = "row",
        palette_grouping = list(
            
            # For first grouping (vs)
            c("#66C2A5", "#FC8D62"), 
            
            # For second grouping (property_group)
            c("#b58b4c", "#74a6aa")
        )
    ) |>
    add_tile(hp)
圖片

Multiple groupings and annotations

tidyHeatmap::pasilla |>
    group_by(location, type) |>
    heatmap(
        .column = sample,
        .row = symbol,
        .value = `count normalised adjusted`,   
        scale = "row"
    ) |>
    add_tile(condition) |>
    add_tile(activation)
圖片

小結(jié)

從上面的流程我們可以看出tidyHeatmap的使用非常簡單,而且出的圖也是很美觀的,使用者也可以根據(jù)需要選擇其它配色。其實(shí)它的功能還遠(yuǎn)遠(yuǎn)不止于此,Immugent會在下一期推文中介紹有關(guān)tidyHeatmap包的其它個性化使用。

好啦,本期分享到這就結(jié)束了,我們下期再會~~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容