基于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个预测基因),且结果与你的研究描述完全匹配。

相关推荐
std787911 分钟前
Rust 与 Go – 比较以及每个如何满足您的需求
开发语言·golang·rust
报错小能手17 分钟前
python(入门)map内置函数及import模块导入,as别名
开发语言·人工智能·python
梵得儿SHI25 分钟前
Java 反射机制实战:对象属性复制与私有方法调用全解析
java·开发语言·java反射机制的实际应用·对象属性复制·反射调用私有方法·私有字段·类型兼容性和敏感字段忽略
sulikey27 分钟前
C++的STL:深入理解 C++ 的 std::initializer_list
开发语言·c++·stl·list·initializerlist·c++标准库
liu****43 分钟前
19.map和set的封装
开发语言·数据结构·c++·算法
孤廖44 分钟前
C++ 模板再升级:非类型参数、特化技巧(含全特化与偏特化)、分离编译破解
linux·服务器·开发语言·c++·人工智能·后端·深度学习
润 下1 小时前
C语言——回调函数的典型示例(分析详解)
c语言·开发语言·人工智能·经验分享·笔记·程序人生
朝新_1 小时前
【EE初阶 - 网络原理】传输层协议
java·开发语言·网络·笔记·javaee
前端架构师-老李1 小时前
Java开发—JDK的安装和版本管理(macOS)
java·开发语言·macos
懂得节能嘛.1 小时前
【动态配置中心】Java+Redis构建动态配置中心
java·开发语言·redis