基于STRING数据库构建模型基因的PPI网络 基于GeneMANIA构建Hub基因的功能相似网络

根据你描述的"36个模型基因(含7个核心模型基因)PPI网络构建"和"5个Hub基因功能相似网络分析"需求,以下提供分步骤技术方案,包括STRING数据库实操、R语言可视化(复现Fig10A),以及GeneMANIA网站实操(复现Fig10B),确保结果与你的研究描述完全匹配:

一、Fig10A:基于STRING数据库构建36个模型基因的PPI网络(含7个核心模型基因)

1. 数据准备
  • 输入基因列表 :整理36个模型基因的官方基因名(SYMBOL格式,如AURKA、CCNA2等,需确保包含7个核心模型基因),保存为纯文本文件(每行1个基因,无表头),示例如下:

    复制代码
    AURKA
    CCNA2
    EZH2
    TTK
    FGFR1
    # (后续补充剩余31个模型基因)
2. STRING数据库实操步骤(在线构建PPI)

STRING数据库(https://string-db.org/)是构建PPI网络的标准工具,操作如下:

  1. 进入STRING主页:选择"Multiple proteins"(多蛋白分析),上传准备好的基因列表文件(或手动粘贴所有基因名)。
  2. 选择物种:在"Organism"下拉框中选择对应物种(如人类选"Homo sapiens"),点击"SEARCH"。
  3. 调整网络参数 (关键,匹配你的结果):
    • 置信度阈值:默认"medium (0.4)",若需筛选高可信度互作(如你提到的"5个模型基因有关系"),可适当提高至"high (0.7)";
    • 隐藏孤立节点:在右侧"Settings"中勾选"Hide disconnected nodes",移除无互作的基因(确保仅显示有联系的节点);
    • 添加基因标签:勾选"Show node labels",确保基因名清晰显示。
  4. 验证结果:确认网络中仅5个模型基因(AURKA、CCNA2、EZH2、TTK、FGFR1)存在互作连线,其余31个基因因无互作被隐藏(与你描述的"5个模型基因有关系"一致)。
  5. 导出网络
    • 点击"Export"→选择"Image",下载PNG/PDF格式图片(用于Fig10A);
    • (可选)导出数据:选择"Data"→"TSV",下载互作关系表(含置信度、互作类型等,用于后续R语言复现)。
3. R语言复现Fig10A(可选,更灵活调整样式)

若需自定义网络颜色(如突出7个核心模型基因),可使用STRINGdb包或igraph包复现,代码如下:

r 复制代码
# 加载包
if (!requireNamespace("STRINGdb", quietly = TRUE)) BiocManager::install("STRINGdb")
if (!requireNamespace("igraph", quietly = TRUE)) install.packages("igraph")
library(STRINGdb)
library(igraph)

# 1. 初始化STRING数据库(人类物种ID=9606)
string_db <- STRINGdb$new(version = "11.5", species = 9606, score_threshold = 700)  # 700对应置信度0.7

# 2. 输入36个模型基因(含7个核心基因)
model_genes <- c("aa", "bb", "cc", "dd", "ee", "ff", "gg", ...)  # 补充36个基因

# 3. 映射STRING ID并获取PPI网络
string_ids <- string_db$map(data.frame(gene = model_genes), "gene", removeUnmappedRows = TRUE)
ppi_data <- string_db$get_interactions(string_ids$STRING_id)

# 4. 构建igraph网络并筛选高置信度互作
g <- graph_from_data_frame(ppi_data, directed = FALSE)
# 仅保留有互作的节点(匹配你"5个基因有关系"的结果)
g_filtered <- induced_subgraph(g, which(degree(g) > 0))

# 5. 自定义绘图样式(突出5个Hub基因)
model_genes <- c("aa", "bb", "cc", "dd", "ee", "ff", "gg", ...)  # 补充36个基因
node_color <- ifelse(V(g_filtered)$name %in% hub_genes, "red", "lightblue")  # Hub基因标红
node_size <- ifelse(V(g_filtered)$name %in% hub_genes, 30, 20)  # Hub基因节点更大

# 6. 绘制Fig10A
pdf("Fig10A_PPI_Network.pdf", width = 8, height = 6)
plot(g_filtered,
     vertex.color = node_color,
     vertex.size = node_size,
     vertex.label.cex = 0.8,  # 基因名大小
     edge.width = E(g_filtered)$combined_score / 200,  # 连线宽度对应置信度
     edge.color = "gray50",
     main = "PPI Network of Model Genes (STRING Database)")
# 添加图例
legend("bottomright", 
       legend = c("Hub Genes", "Other Model Genes"),
       fill = c("red", "lightblue"),
       border = NA,
       bty = "n")
dev.off()

二、Fig10B:基于GeneMANIA构建5个Hub基因的功能相似网络

GeneMANIA(https://genemania.org/)可预测基因间的功能关联(共表达、共享蛋白域等),操作如下:

1. 数据准备
  • 输入基因列表:5个Hub基因(AURKA、CCNA2、EZH2、TTK、FGFR1),确保为SYMBOL格式。
2. GeneMANIA实操步骤
  1. 进入GeneMANIA主页:在"Enter genes"框中粘贴5个Hub基因名,选择物种(如"Homo sapiens"),点击"SEARCH"。
  2. 调整网络参数 (匹配你的结果):
    • 功能关联类型:默认勾选"Co-expression"(共表达)、"Protein domain similarity"(共享蛋白域)、"Genetic interactions"(遗传互作)等,无需额外修改(与你描述的"不同颜色连线代表共表达、共享蛋白域"一致);
    • 预测基因数量:在右侧"Settings"中设置"Number of predicted genes"为20(确保网络包含5个Hub基因+20个功能相似基因,共25个节点)。
  3. 验证结果:确认网络节点数为25(5个Hub基因+20个预测基因),连线颜色与功能类型对应(如蓝色=共表达、绿色=共享蛋白域,可在页面底部"Legend"查看颜色含义)。
  4. 导出网络
    • 点击"Export"→选择"Image",下载PNG/PDF格式图片(用于Fig10B);
    • (可选)导出数据:选择"Data"→"Network",下载功能关联表(含关联类型、得分等)。
3. 图注规范(匹配你的描述)

Fig10B的图注需明确:

"B. GeneMANIA网站预测hub基因的功能相似基因互作网络。图中圆圈代表5个hub基因(AURKA、CCNA2、EZH2、TTK、FGFR1)及20个功能相似基因;不同颜色连线代表基因间的功能关联类型(蓝色=共表达,绿色=共享蛋白域,红色=遗传互作等,具体见图例)。"

三、关键注意事项(确保结果准确)

  1. 基因名一致性 :所有步骤使用官方SYMBOL格式(如"AURKA"而非"Aurora A"),避免因别名导致的映射失败;
  2. 阈值匹配:STRING的置信度阈值(如0.7)需根据你的"5个基因有关系"结果调整,若阈值过低会出现过多无关互作;
  3. 物种一致性:STRING和GeneMANIA需选择同一物种(如人类),避免跨物种结果偏差;
  4. 节点数量验证:GeneMANIA的"预测基因数量"需设为20,确保网络总节点数为25(5+20),与你的描述一致。

通过以上步骤,可完整复现Fig10A(STRING构建的36个模型基因PPI网络,仅5个Hub基因有互作)和Fig10B(GeneMANIA构建的5个Hub基因功能相似网络,含20个预测基因),且结果与你的研究描述完全匹配。

相关推荐
无限进步_2 小时前
【C语言】计算两个整数二进制表示中不同位的个数
c语言·开发语言
枫叶丹43 小时前
【Qt开发】输入类控件(三)-> QComboBox
开发语言·qt
K 旺仔小馒头4 小时前
【代码的暴力美学】-- C语言基础编程题_2
c语言·开发语言·刷题
MediaTea4 小时前
Python 编辑器:Visual Studio Code
开发语言·ide·vscode·python·编辑器
懒羊羊不懒@4 小时前
C语言指针进阶(进阶)
java·开发语言·面试
前路不黑暗@4 小时前
Java:代码块
java·开发语言·经验分享·笔记·python·学习·学习方法
Pocker_Spades_A4 小时前
C++程序设计上机作业(1)
开发语言·c++
乱飞的秋天4 小时前
C++中的特殊成员函数
开发语言·c++
小严家5 小时前
Flutter完整开发指南 | Flutter&Dart – The Complete Guide
开发语言·flutter