# 第 10 章 PPI 网络与 hub 基因

## 本章目标

学完本章，你将能够：

1. 用自己的话说清楚什么是蛋白质-蛋白质相互作用（PPI）网络，以及为什么“连接最多的节点”常被当作候选关键基因；
2. 在 STRING（string-db.org）网页上输入基因列表、选择物种 Homo sapiens、导出互作关系文件（TSV）；
3. 安装并基本使用 Cytoscape，把 STRING 网络导入、布局、美化；
4. 用 cytoHubba 插件按 MCC / Degree 算法筛选出 top hub 基因；
5. 知道如何用 R 的 igraph 做最简单的替代分析，并理解 hub 基因如何衔接下一章的生存分析。

## 正文

### 10.1 什么是 PPI 网络，为什么要找 hub 基因

先打个比方。想象一个社交网络：每个人是一个点，朋友关系是两点之间的连线。有的人朋友特别多，消息靠他们一传十、十传百，信息流动高度依赖这些人。蛋白质也类似：一个细胞里有成千上万种蛋白质，它们并不是各干各的，而是通过物理结合、共同参与某个通路等方式“打交道”。把“谁和谁存在相互作用”画成图——节点（node）是蛋白质，边（edge）是相互作用——就得到了蛋白质-蛋白质相互作用（protein-protein interaction, PPI）网络。

hub 基因（hub gene）指网络中连线特别多的节点，通常对应在信号传导、细胞命运决定中起枢纽作用的蛋白。肿瘤研究里有一个朴素但常用的假设：hub 基因一旦异常，会通过它的大量互作伙伴把影响“放大”出去，因此更可能是关键基因（candidate key gene）。在我们这个焦亡课题里，PPI 网络的作用是**缩小候选范围**：第 7 章的差异基因、焦亡基因列表往往有几十上百个，不可能全部做生存分析；优先挑出“网络位置重要”的 hub 基因来检验，既减少多重检验负担，也让故事有逻辑。

需要提醒：hub ≠ 已证实的驱动基因。它只是“网络位置重要”的线索，后续还要靠生存分析、独立验证乃至实验来检验。

### 10.2 STRING 数据库：网页操作

STRING（Search Tool for the Retrieval of Interacting Genes/Proteins，string-db.org）是目前最常用的 PPI 数据库之一。它整合了多种证据来源（实验、数据库注释、共表达、文本挖掘等），为每对互作打一个综合分数（combined score，取值 0~1），分数越高越可信。

操作步骤（网页版，全部是鼠标操作，不需要写代码）：

1. 打开 string-db.org；
2. 在输入方式中选择"List of names"（列表输入），把我们前面得到的焦亡基因列表粘贴进去，每行一个基因符号（如 GSDME、GSDMD、CASP1）；
3. 选择物种：Organism 下拉框选 **Homo sapiens**（人类）；
4. 点击 SEARCH，在匹配确认页核对基因都认对了，点 CONTINUE，得到网络图；
5. 点 Settings（设置），把置信度（confidence）设为 **medium confidence（0.400）**——这是常用默认阈值，兼顾互作数量与可信度；想更严格可以试 0.7，但网络会明显变稀疏；
6. 勾选 hide disconnected nodes（隐藏孤立节点），让图更干净；
7. 可选设置：Network type（网络类型）有 full network（全部证据）与 physical subnetwork（仅物理结合证据）两个选项——如果只想看“蛋白是否真的结合”，可选 physical，但边数会明显变少；默认 full network 即可；
8. 导出数据：点 Export（导出）→ 选 "as simple tabular text output (TSV)"，下载互作关系表，里面至少包含 node1、node2、combined_score 等列，这是后续 Cytoscape 和 R 分析的输入。

两点提醒：第一，STRING 的分数里包含 textmining（文本挖掘）证据——从文献里“共现”扒出来的关联，可能有噪音，解读时要留意；第二，网页上截的网络图只能当示意图，正式分析请用导出的 TSV 数据。

### 10.3 Cytoscape 入门

Cytoscape（cytoscape.org）是开源的网络可视化桌面软件（基于 Java，Windows/Mac 都需先装 Java 运行环境），也是 PPI 分析论文里最常见的出图工具。

基本流程：

1. 从官网下载安装 Cytoscape，按向导完成安装；
2. 打开软件：File → Import → Network from File，选择 STRING 导出的 TSV；导入向导会自动把前两列识别为边的两端（两个互作的蛋白），其余列作为边的属性；
3. 点 OK 后出现网络。默认布局较乱，用 Layout（布局）菜单换布局：常用 yFiles Organic（有机布局）或 Prefuse Force Directed（力导向布局），让互作密集的节点聚在一起；
4. 美化：在 Style（样式）面板里把节点大小、颜色映射到 Degree（度，即连接数）——连接越多的节点越大越红，hub 一目了然；
5. 导出图片：File → Export → Network to Image，存成 PNG，供论文或教程使用。

### 10.4 cytoHubba：筛选 hub 基因

网络“看着像”还不够，我们需要量化排序。cytoHubba 是 Cytoscape 的插件（App），提供多种节点重要性打分算法。步骤：

1. 安装：Cytoscape 菜单 Apps → App Manager → 搜索 cytoHubba → Install；
2. 打开导入的网络。建议先取出**最大连通分量**（最大的连成一片的子网络，避免孤立小团块干扰打分）再分析：可用 Select 过滤或菜单 Tools → Network Analyzer 辅助；
3. 运行：Apps → cytoHubba，选择要打分的网络；
4. 算法选 **MCC**（Maximal Clique Centrality，最大团中心性）或 **Degree**（度），Top N 填 10 或 20，点 Submit；
5. 结果按分数排序并可在网络里高亮前 N 个节点——这些就是候选 hub 基因。

经验上 MCC 比单纯 Degree 更稳健（它同时考虑了节点所在的小团体结构），但不同算法结果会有差异，可把两种算法的 top 列表取交集。cytoHubba 的结果可以直接截图，也可以从面板复制基因列表，供下一步生存分析使用。

下图是 PPI 网络与 hub 基因的**示例图**（模拟数据绘制，仅演示图形样式与 hub 高亮方式；读者用自己数据跑 STRING + Cytoscape 后得到的是自己的图）：

![图11 PPI 网络与 hub 基因示意（示例图，模拟数据，仅演示样式）](../figures/fig11_ppi.png)

### 10.5 替代方案：用 R 的 igraph 做简单 PPI 分析（可选）

如果暂时不想装 Cytoscape，R 包 igraph 可以做最基本的分析——读入 STRING 的 TSV、计算度、画简单网络：

```r
# install.packages("igraph")
library(igraph)

# 读入 STRING 导出的 TSV（含 node1, node2 等列）
ppi <- read.delim("string_interactions.tsv", stringsAsFactors = FALSE)

# 建无向图：每条边连接两个蛋白
g <- graph_from_data_frame(ppi[, c("node1", "node2")], directed = FALSE)

# 度：每个节点连接的边数
deg <- degree(g)
sort(deg, decreasing = TRUE)[1:10]   # 连接最多的前 10 个基因

# 简单可视化（教学演示用；正式发表建议用 Cytoscape 精修出图）
V(g)$size <- deg * 2
plot(g, layout = layout_with_fr(g), vertex.label.cex = 0.6)
```

igraph 是“够用但简陋”的替代：能算度、介数（betweenness）等指标，但交互式调整和出图质量不如 Cytoscape。正式分析建议两者结合：igraph 算指标，Cytoscape 出图。

### 10.6 衔接：hub 基因与生存分析

拿到 hub 基因后，核心问题变成：这些“网络里重要”的基因，是否真的与患者预后有关？比如某个 hub 基因高表达的患者是否活得更短？这需要回到带生存随访的数据（TCGA-LIHC 的临床信息里有生存时间 OS.time 与结局 OS），对每个 hub 基因做 KM 生存分析和 Cox 回归——这正是下一章的内容。换句话说，PPI 网络在这里充当“漏斗”：从几十上百个差异/焦亡基因中先筛出 hub 基因，再逐一检验预后价值，最后用 LASSO 把这些基因压缩成一个风险模型。

## 本章小结

- PPI 网络把蛋白质互作画成“节点-边”图，hub 基因是连线密集的关键节点，是候选关键基因的线索而非定论；
- STRING 网页版流程：输入基因列表 → 选 Homo sapiens → 置信度设 medium 0.4 → 导出 TSV；网页截图只作示意图，正式分析用导出的数据；
- Cytoscape 是主流网络可视化软件：导入 TSV → 换布局 → 按度映射节点大小/颜色 → 导出 PNG；
- cytoHubba 用 MCC / Degree 等算法量化节点重要性，取 top 10/20 作为 hub 基因候选；
- 不装软件时可用 R 的 igraph 快速算度并画简单网络；
- hub 基因是“缩小候选池”的手段，下一步用生存分析检验其预后价值。

## 思考题

1. 为什么 STRING 的 confidence 设得越高，网络里的节点和边通常越少？0.4 与 0.7 各适合什么场景？
2. 如果一个基因在 STRING 里“连接很多”，能直接说它是致癌基因吗？还需要哪些证据？
3. cytoHubba 的 Degree 与 MCC 排序结果不一致时，你倾向信哪个？为什么？
4. 假如你的差异基因列表有 200 个基因，直接用全部基因逐个做生存分析会有什么问题？（提示：多重检验）
