前言
Immugent最近注意到壤巷,生信寶庫好久沒有更新有關(guān)基礎(chǔ)繪圖的推文了辞做,于是專門去找了最近常常碰到的專注于繪制熱圖的tidyHeatmap包的教程來學(xué)習(xí)了一下,現(xiàn)在分享給大家浸锨。
其實(shí)繪制熱圖的R包有很多了战秋,從最開始的Pheatmap包璧亚,再到后來的ComplexHeatmap包,都是專門用來繪制熱圖的脂信。事實(shí)上癣蟋,今天介紹的這款tidyHeatmap包是在ComplexHeatmap包的基礎(chǔ)上進(jìn)行優(yōu)化,簡(jiǎn)化了很多的操作狰闪。但是值得注意的是疯搅,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
淺畫一個(gè)熱圖
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的使用非常簡(jiǎn)單,而且出的圖也是很美觀的瘦麸,使用者也可以根據(jù)需要選擇其它配色谁撼。其實(shí)它的功能還遠(yuǎn)遠(yuǎn)不止于此,Immugent會(huì)在下一期推文中介紹有關(guān)tidyHeatmap包的其它個(gè)性化使用滋饲。
好啦厉碟,本期分享到這就結(jié)束了,我們下期再會(huì)~~