1. 从STRING数据到环形网络图:为什么选择ggraph?
如果你正在做基因功能研究或者蛋白互作分析,那你对STRING数据库肯定不陌生。这个数据库整合了已知的和预测的蛋白质相互作用,是我们挖掘基因功能关系的神器。但问题来了,从STRING官网下载下来的那一大堆互作关系数据,怎么才能变成一张既专业又好看的图,放进你的文章或者报告里呢?
我刚开始做生信分析那会儿,也在这个环节卡了很久。试过不少工具,比如Cytoscape,功能是强大,但操作起来步骤繁琐,批量处理也不方便。后来发现了R语言里的ggraph包,简直像打开了新世界的大门。它完美继承了ggplot2的优雅语法,让你能用写代码的方式,精细地控制网络图的每一个细节——从布局、颜色到线条的弧度。特别是它画环形布局网络图的能力,能把复杂的互作关系梳理得清清楚楚,不同分组的基因沿着圆圈排开,相互关系用优雅的弧线连接,视觉上非常直观。
所以,这篇文章我就手把手带你走一遍完整的流程:如何把从STRING导出的原始数据,通过ggraph一步步变成一张带有分组和上下调信息的环形基因互作网络图。整个过程就像搭积木,我们会重点解决几个实际难题:数据怎么整理成ggraph认识的格式?怎么给基因分组并上色?怎么用节点边框区分上下调?以及最关键的一步——如何调整那个环形布局,让图片既美观又不拥挤。不用担心代码复杂,我会把每一步的原理和背后的“小心思”都讲明白,保证你跟着做一遍就能掌握这个强大的可视化技巧。
2. 实战第一步:准备你的网络数据与节点属性
万事开头难,画图的第一步永远不是写绘图代码,而是准备好干净、规整的数据。ggraph绘图的核心是两种数据:边列表和节点属性列表。边列表描述谁和谁有关系,节点属性列表描述每个节点(基因)自身的特征。
2.1 获取并理解STRING互作数据
通常,我们可以从STRING数据库官网进行在线分析,输入你感兴趣的基因列表,设置好互作得分阈值(比如默认的400),然后导出结果。导出的文件一般包含from(互作基因A)、to(互作基因B)和combined_score(综合互作得分)这几列关键信息。这个文件就是我们的“边列表”。得分越高,表示两个基因之间存在互作关系的证据越充分,我们在图上就可以用更粗的线来表示。
假设我们把这个文件保存为string_edges.csv。在R里读取它很简单:
library(tidyverse)
edges_df <- read.csv("string_edges.csv", header = TRUE)
head(edges_df)
你需要检查一下数据框的列名,通常可能就是from、to和combined_score。如果不是,记得在后续代码中使用正确的列名。
2.2 构建丰富的节点属性数据
只有连接关系还不够,我们想给基因点赋予更多意义。这就需要创建节点属性数据框。至少,我们需要一个包含所有唯一基因名的列表。从边列表中可以轻松提取:
all_genes <- unique(c(edges_d


1016

被折叠的 条评论
为什么被折叠?



