如何修改R语言pathview包的KEGG通路颜色映射尺度?
Pathview调换上下调颜色映射及node.cols失效解决办法
调换颜色的两种有效方法
Pathview默认红色对应上调(正log2FC)、绿色对应下调(负log2FC),要反过来很简单,直接改参数即可:
方法1:直接指定low和high颜色
在原代码里添加low="red", high="green",就能把下调对应红色、上调对应绿色:
pv.out <- pathview(gene.data = lala[,1:4], pathway.id = "00480", species = "hsa", kegg.native = TRUE, match.data=FALSE, multi.state = TRUE, out.suffix = "yolo", same.layer = FALSE, keys.align="y", limit = 0.585, bins = 15, low = "red", high = "green")
方法2:自定义反向颜色梯度
如果需要更细腻的过渡色,生成一个从红到绿的颜色向量传给node.col参数:
# 生成15个颜色的反向梯度(和你设置的bins=15对应) rev_color_ramp <- colorRampPalette(c("red", "white", "green"))(15) pv.out <- pathview(gene.data = lala[,1:4], pathway.id = "00480", species = "hsa", kegg.native = TRUE, match.data=FALSE, multi.state = TRUE, out.suffix = "yolo", same.layer = FALSE, keys.align="y", limit = 0.585, bins = 15, node.col = rev_color_ramp)
node.cols失效的原因排查
你提到的node.cols是拼写错误,Pathview里的正确参数是node.col(单数),写错参数名肯定不会生效。另外还有几个可能的坑:
- 当
multi.state=TRUE时,要确保颜色向量的长度和bins一致,否则颜色映射会混乱 - 检查
gene.data里log2FC的正负是否正确:Pathview默认正数值对应上调、负数值对应下调,要是你的数据逻辑反过来,颜色显示也会出错 - 试试去掉
match.data=FALSE,这个参数可能干扰基因和通路节点的匹配,导致颜色不显示 - 确认
limit参数覆盖了你所有的log2FC值,超出-limit到limit范围的数值会被截断,颜色显示会异常
内容的提问来源于stack exchange,提问作者maritos
相关产品推荐
相关产品推荐

