R语言代码Rstudio绘图SCI科研生信医学桑基热图数据分析作图教程
感谢您的反馈!为帮助您更系统掌握R语言在生信医学领域的科研绘图技能,我为您整理了一份进阶版教程,包含实战案例、代码解析和资源推荐三大部分:
一、实战案例:肿瘤亚型分析中的桑基热图联动
场景:展示乳腺癌亚型与基因表达、临床特征的多维关联
r复制代码
# 加载包
library(ggplot2)
library(ggsankey)
library(ComplexHeatmap)
# 模拟数据生成
set.seed(42)
subtype <- sample(c("Luminal A", "Luminal B", "HER2+", "TNBC"), 100, replace = T)
gene_expr <- matrix(rnorm(400), ncol=4,
dimnames = list(paste0("Patient",1:100),
c("ESR1", "HER2", "TP53", "MYC")))
clinical <- data.frame(
subtype = subtype,
age = sample(30:80, 100, replace = T),
stage = sample(c("I","II","III"), 100, replace = T, prob = c(0.4,0.4,0.2))
)
# 1. 绘制桑基图(亚型-基因表达关联)
sankey_data <- data.frame(
source = rep(unique(clinical$subtype), each=4),
target = rep(colnames(gene_expr), 4),
value = runif(16, 0.5, 2)
)
ggplot(sankey_data, aes(x=source, y=target, fill=value)) +
geom_sankey(aes(width=value), color="white") +
scale_fill_gradient(low="lightblue", high="darkblue") +
theme_void() +
labs(title="乳腺癌亚型与基因表达关联桑基图")
# 2. 绘制热图(基因表达模式)
top_genes <- apply(gene_expr, 2, function(x) head(order(abs(x), decreasing = T), 20))
heatmap_data <- gene_expr[unique(as.vector(top_genes)), ]
Heatmap(
heatmap_data,
name = "Expression Level",
col = colorRamp2(c(-3, 0, 3), c("blue", "white", "red")),
cluster_columns = clinical$subtype,
show_column_names = FALSE,
top_annotation = HeatmapAnnotation(
Subtype = clinical$subtype,
Stage = clinical$stage,
col = list(
Subtype = c("Luminal A"="pink", "Luminal B"="lightgreen",
"HER2+"="purple", "TNBC"="orange"),
Stage = c("I"="blue", "II"="green", "III"="red")
)
)
)
二、代码解析:关键参数详解
-
桑基图优化技巧:
-
geom_sankey()
参数:通过width
控制节点宽度,node_width
调整连接带宽度 -
颜色映射:使用
scale_fill_gradientn()
实现多色渐变 -
交互增强:添加
plotly::ggplotly()
实现交互式查看
-
-
热图进阶功能:
-
多组学整合:使用
MultiAssayExperiment
包整合基因表达、甲基化等数据 -
差异分析:结合
limma
包进行差异表达分析后直接映射到热图 -
临床注释:通过
HeatmapAnnotation()
添加生存曲线、箱线图等复杂注释
-
多组学整合:使用
三、资源推荐
-
交互式学习平台:
- DataCamp:提供《Data Visualization with ggplot2》等专项课程
- RStudio Cloud:在线运行R代码,无需本地配置
-
生物医学专用包:
-
maftools
:肿瘤突变分析可视化 -
clusterProfiler
:功能富集分析 -
GSVA
:基因集变异分析
-
-
期刊投稿指南:
- Nature Methods:提供《Points of Significance》专栏(统计可视化最佳实践)
- PLOS Computational Biology:开源分析流程模板
定制化支持:您可提供具体研究场景(如单细胞测序数据分析、药物反应预测等),我将提供:
- 专属分析流程设计
- 代码模板生成
- 统计方法选择建议
- 图表排版优化方案