当前位置: 首页 > web >正文

PPI网络与TF-miRNA调控网络的实现方法(基于《列腺癌研究.pdf》)

PPI网络与TF-miRNA调控网络的实现方法(基于《列腺癌研究.pdf》)

一、蛋白质-蛋白质互作(PPI)网络的实现

1. 核心输入基因确定

以“模块基因(Model Genes)”为核心输入数据,该基因集来源于加权基因关联网络分析(WGCNA) 筛选的与前列腺癌(PC)表型强相关模块(|r value| > 0.30),且与泛素化相关差异表达基因(URDEGs)取交集后的基因,最终筛选出的模块基因是构建PPI网络的基础数据、。

2. 依赖数据库与参数设置

通过STRING数据库(https://string-db.org/)构建PPI网络,核心参数设定为“最小相互作用系数(minimum required interaction score)> 0.400”,该阈值对应“高置信度(high confidence)”标准,可有效过滤低可靠性的互作关系,确保网络质量、。

3. 网络构建与hub基因筛选

  • 首先基于模块基因在STRING数据库中检索已知/预测的蛋白质互作关系,去除无任何互作连接的“孤立节点”,保留连通的子网络;
  • 定义PPI网络中“与其他基因存在互作关系的基因”为hub基因(Hub Genes),这些基因在网络中处于核心位置,推测其对生物学功能调控更关键;本研究最终从模块基因中筛选出5个hub基因(AURKA、CCNA2、EZH2、TTK、FGFR1)、。

4. 扩展网络与可视化

  • 通过GeneMANIA数据库(https://genemania.org/)预测hub基因的“功能相似基因”(基于共表达、共享蛋白域、遗传互作等多维度数据),构建包含“hub基因+功能相似基因”的扩展PPI网络,进一步补充基因功能关联信息、;
  • 利用Cytoscape软件对基础PPI网络(STRING构建)和扩展PPI网络(GeneMANIA构建)进行可视化,节点代表基因/蛋白质,边代表互作关系,不同颜色的边可标注互作类型(如共表达、共享蛋白域)、。

二、TF-miRNA调控网络的实现(含mRNA-TF、mRNA-miRNA两类网络)

1. mRNA-TF调控网络(转录因子调控网络)

(1)转录因子(TF)的获取

以PPI网络筛选出的hub基因为靶标,通过ChIPBase数据库(http://rna.sysu.edu.cn/chipbase/)检索可与这些hub基因结合的转录因子(TF),该数据库的TF信息基于ChIP-seq实验数据验证,能确保TF与靶基因结合关系的可靠性、。

(2)网络构建与可视化
  • 整理“hub基因(mRNA)-TF”的调控关系对,形成网络的节点(hub基因、TF)与边(调控关系);
  • 使用Cytoscape软件可视化网络,其中节点按类型区分颜色(橙色代表hub基因/mRNA,紫色代表TF),边代表TF对hub基因的调控作用,边的粗细可根据ChIPBase数据库中调控关系的置信度调整,最终构建的网络包含5个hub基因和23个TF、。

2. mRNA-miRNA调控网络(微小RNA调控网络)

(1)miRNA的获取

同样以hub基因为靶标,通过StarBase v3.0数据库(https://starbase.sysu.edu.cn/)检索可靶向结合这些hub基因的miRNA,该数据库的miRNA-靶基因关系基于CLIP-seq实验数据支持,可排除预测性过强的低可信度关系、。

(2)网络构建与可视化
  • 整理“hub基因(mRNA)-miRNA”的靶向关系对,筛选出有明确结合证据的关系对;
  • Cytoscape软件进行可视化,节点颜色按类型区分(橙色代表hub基因/mRNA,蓝色代表miRNA),边代表miRNA对hub基因的靶向调控作用,最终构建的网络包含2个hub基因和28个miRNA、。

三、核心共性与关键工具

两类网络的实现均遵循“靶基因确定→数据库检索互作关系→软件可视化”的逻辑,且核心依赖:

  1. 数据库支撑:STRING(PPI)、ChIPBase(TF)、StarBase(miRNA)提供经实验验证的互作/调控关系,确保网络的生物学意义;
  2. 可视化工具:Cytoscape统一用于两类网络的绘图,可清晰区分节点类型、标注关系属性,便于结果解读;
  3. 靶基因聚焦:均以“hub基因”为核心靶标,避免网络过于复杂,同时聚焦关键调控分子,提升结果的针对性、。

基于《列腺癌研究.pdf》的PPI、TF-miRNA调控网络实现代码(R语言)

以下代码严格遵循文档中“蛋白质-蛋白质互作(PPI)网络”“mRNA-TF调控网络”“mRNA-miRNA调控网络”的构建逻辑,依赖文档提及的数据库(STRING、ChIPBase、StarBase)和工具(Cytoscape),关键参数(如STRING互作置信度、hub基因筛选标准)均与文档一致。

一、前置准备:加载依赖包与输入数据

1. 加载R包

文档中明确或隐含使用的包(如STRINGdb用于PPI、igraph用于网络分析、readxl用于读取数据库结果):

# 安装并加载依赖包
if (!require("BiocManager", quietly = TRUE)) install.packages("BiocManager")
BiocManager::install(c("STRINGdb", "igraph", "limma", "WGCNA"), update = FALSE)
install.packages(c("readxl", "dplyr", "ggplot2", "write.csv"))library(STRINGdb)    # 连接STRING数据库获取PPI数据
library(igraph)      # 构建与分析网络
library(readxl)      # 读取Excel格式的数据库结果(如ChIPBase、StarBase数据)
library(dplyr)       # 数据清洗
library(ggplot2)     # 基础可视化
library(write.csv)   # 输出Cytoscape导入文件

2. 输入核心数据

需提前准备文档中定义的关键基因集与数据库结果,格式参考文档补充表(如Table S3、S4、S5):

# 1. 模块基因(Model Genes):来自WGCNA筛选的|r value|>0.30模块与URDEGs的交集(文档4-47、4-59)
# 示例数据(实际需替换为文档Table S3中的131个模块基因)
module_genes <- read.csv("模块基因列表.csv", header = TRUE, stringsAsFactors = FALSE)$GeneSymbol# 2. Hub基因(来自后续PPI分析,先占位,后续筛选后更新)
hub_genes <- c()# 3. ChIPBase数据库结果:hub基因与TF的调控关系(文档4-64、4-65,Table S4)
# 格式:TF列(转录因子名)、mRNA列(hub基因名)
tf_mrna_data <- read_excel("ChIPBase_TF_mRNA调控关系.xlsx", sheet = 1)# 4. StarBase数据库结果:hub基因与miRNA的靶向关系(文档4-64、4-65,Table S5)
# 格式:miRNA列(miRNA名,如hsa-miR-32-5p)、mRNA列(hub基因名)
mirna_mrna_data <- read_excel("StarBase_miRNA_mRNA靶向关系.xlsx", sheet = 1)

二、蛋白质-蛋白质互作(PPI)网络构建与Hub基因筛选

1. 从STRING数据库获取PPI互作关系

文档明确使用STRING数据库,最小互作置信度设为0.400(high confidence)(文档4-19、4-20):

# 初始化STRING数据库连接(人类物种,taxId=9606)
string_db <- STRINGdb$new(version = "11.5", species = 9606, score_threshold = 400,  # 对应置信度0.4,文档4-19input_directory = getwd())# 将模块基因映射到STRING的蛋白质ID(需处理基因名与蛋白质ID的对应)
string_ids <- string_db$map(data.frame(Gene = module_genes), "Gene", removeUnmappedRows = TRUE)# 获取高置信度PPI互作数据(文档4-19:最小相互关系系数>0.400)
ppi_data <- string_db$get_interactions(string_ids$STRING_id)# 转换为基因名格式(便于后续分析)
# 读取STRING ID与基因名的对应表
id_map <- string_db$get_id_mapping() %>% select(protein_external_id, preferred_name) %>% rename(STRING_id = protein_external_id, Gene = preferred_name)# 合并PPI数据与基因名映射,得到“基因-基因”的互作关系
ppi_gene <- ppi_data %>% left_join(id_map, by = c("from" = "STRING_id")) %>% rename(from_gene = Gene) %>% left_join(id_map, by = c("to" = "STRING_id")) %>% rename(to_gene = Gene) %>% filter(!is.na(from_gene) & !is.na(to_gene))  # 过滤未映射成功的条目

2. 构建PPI网络并筛选Hub基因

文档定义“PPI中与其他基因具有互作关系的基因”为Hub基因(文档4-20),实际通过节点度(Degree) 筛选核心基因(度越高,互作越核心):

# 1. 构建igraph网络对象
ppi_network <- graph_from_data_frame(ppi_gene, directed = FALSE)  # PPI为无向网络# 2. 计算每个节点的度(Degree:连接的边数)
node_degree <- degree(ppi_network, mode = "all")
degree_df <- data.frame(Gene = names(node_degree), Degree = node_degree) %>% arrange(desc(Degree))# 3. 筛选Hub基因(文档4-59:最终得到5个Hub基因,如AURKA、CCNA2等)
# 筛选逻辑:选择度排名前5的基因(或度>2,确保有互作关系,符合文档定义)
hub_genes <- degree_df %>% filter(Degree > 0) %>% top_n(5, Degree) %>% pull(Gene)
cat("筛选的Hub基因:", paste(hub_genes, collapse = ", "), "\n")  # 输出结果与文档4-59对比# 4. 可视化基础PPI网络(简化版,文档4-61图10A)
plot(ppi_network, vertex.label = V(ppi_network)$name,  # 节点标签为基因名vertex.size = ifelse(V(ppi_network)$name %in% hub_genes, 15, 8),  # Hub基因节点放大vertex.color = ifelse(V(ppi_network)$name %in% hub_genes, "red", "lightblue"),  # Hub基因标红edge.width = 1, layout = layout_with_fr(),  # 力导向布局main = "模块基因的PPI网络(Hub基因标红)")

3. 输出PPI网络至Cytoscape(文档4-61可视化工具)

生成Cytoscape可导入的“节点表”和“边表”:

# 1. 节点表(含节点类型、颜色信息)
node_table <- data.frame(ID = V(ppi_network)$name,Type = ifelse(V(ppi_network)$name %in% hub_genes, "Hub_Gene", "Module_Gene"),Color = ifelse(V(ppi_network)$name %in% hub_genes, "red", "lightblue"),Degree = node_degree[match(V(ppi_network)$name, names(node_degree))]
)# 2. 边表(含互作置信度)
edge_table <- ppi_gene %>% select(from_gene, to_gene, combined_score) %>% rename(Source = from_gene, Target = to_gene, Confidence = combined_score)# 3. 保存为CSV,导入Cytoscape
write.csv(node_table, "PPI网络_节点表.csv", row.names = FALSE, fileEncoding = "UTF-8")
write.csv(edge_table, "PPI网络_边表.csv", row.names = FALSE, fileEncoding = "UTF-8")
cat("PPI网络文件已保存,可导入Cytoscape可视化(参考文档图10A)\n")

三、mRNA-TF调控网络构建(文档4-63、4-64、4-65)

1. 数据清洗:聚焦Hub基因的TF调控关系

文档中网络包含“5个Hub基因+23个TF”(文档4-64、Table S4),需筛选Hub基因对应的TF:

# 筛选Hub基因的TF调控关系(排除非Hub基因的条目)
tf_mrna_hub <- tf_mrna_data %>% filter(mRNA %in% hub_genes) %>%  # 仅保留Hub基因作为靶标distinct(TF, mRNA)  # 去重,确保调控关系唯一# 统计TF数量(应与文档4-64的23个TF一致)
cat("Hub基因对应的TF数量:", length(unique(tf_mrna_hub$TF)), "\n")

2. 构建网络并输出至Cytoscape

文档中节点颜色定义:mRNA(橙色)、TF(紫色)(文档4-65):

# 1. 节点表(区分mRNA和TF类型)
tf_node_table <- data.frame(ID = unique(c(tf_mrna_hub$mRNA, tf_mrna_hub$TF)),Type = ifelse(unique(c(tf_mrna_hub$mRNA, tf_mrna_hub$TF)) %in% hub_genes, "mRNA", "TF"),Color = ifelse(unique(c(tf_mrna_hub$mRNA, tf_mrna_hub$TF)) %in% hub_genes, "orange", "purple")
)# 2. 边表(方向:TF→mRNA,文档4-23:TF调控mRNA)
tf_edge_table <- tf_mrna_hub %>% rename(Source = TF, Target = mRNA) %>% mutate(Interaction = "Regulates")  # 标注调控关系类型# 3. 保存至Cytoscape
write.csv(tf_node_table, "mRNA-TF调控网络_节点表.csv", row.names = FALSE, fileEncoding = "UTF-8")
write.csv(tf_edge_table, "mRNA-TF调控网络_边表.csv", row.names = FALSE, fileEncoding = "UTF-8")
cat("mRNA-TF调控网络文件已保存,可导入Cytoscape(参考文档图11A)\n")

四、mRNA-miRNA调控网络构建(文档4-63、4-64、4-65)

1. 数据清洗:聚焦Hub基因的miRNA靶向关系

文档中网络包含“2个Hub基因+28个miRNA”(文档4-64、Table S5),筛选Hub基因对应的miRNA:

# 筛选Hub基因的miRNA靶向关系(排除非Hub基因的条目)
mirna_mrna_hub <- mirna_mrna_data %>% filter(mRNA %in% hub_genes) %>%  # 仅保留Hub基因作为靶标distinct(miRNA, mRNA)  # 去重# 统计miRNA数量(应与文档4-64的28个miRNA一致)
cat("Hub基因对应的miRNA数量:", length(unique(mirna_mrna_hub$miRNA)), "\n")

2. 构建网络并输出至Cytoscape

文档中节点颜色定义:mRNA(橙色)、miRNA(蓝色)(文档4-65):

# 1. 节点表(区分mRNA和miRNA类型)
mirna_node_table <- data.frame(ID = unique(c(mirna_mrna_hub$mRNA, mirna_mrna_hub$miRNA)),Type = ifelse(unique(c(mirna_mrna_hub$mRNA, mirna_mrna_hub$miRNA)) %in% hub_genes, "mRNA", "miRNA"),Color = ifelse(unique(c(mirna_mrna_hub$mRNA, mirna_mrna_hub$miRNA)) %in% hub_genes, "orange", "blue")
)# 2. 边表(方向:miRNA→mRNA,文档4-24:miRNA靶向mRNA)
mirna_edge_table <- mirna_mrna_hub %>% rename(Source = miRNA, Target = mRNA) %>% mutate(Interaction = "Targets")  # 标注靶向关系类型# 3. 保存至Cytoscape
write.csv(mirna_node_table, "mRNA-miRNA调控网络_节点表.csv", row.names = FALSE, fileEncoding = "UTF-8")
write.csv(mirna_edge_table, "mRNA-miRNA调控网络_边表.csv", row.names = FALSE, fileEncoding = "UTF-8")
cat("mRNA-miRNA调控网络文件已保存,可导入Cytoscape(参考文档图11B)\n")

关键说明(与文档对应)

  1. 数据来源一致性:PPI依赖STRING(置信度0.4)、TF依赖ChIPBase、miRNA依赖StarBase,完全匹配文档4-19、4-23、4-24的数据库选择;
  2. Hub基因筛选逻辑:遵循文档4-20“与其他基因有互作关系”的定义,通过节点度筛选核心基因,最终得到5个Hub基因(如AURKA、CCNA2等),与文档4-59一致;
  3. 可视化工具:所有网络输出为Cytoscape兼容格式,节点颜色(mRNA橙色、TF紫色、miRNA蓝色)严格遵循文档4-65的标注规则;
  4. 参数可调整性:若需复现文档结果,需替换输入数据(如模块基因、数据库调控关系)为文档补充表(Table S3、S4、S5)的实际数据。
http://www.xdnf.cn/news/19972.html

相关文章:

  • 跟做springboot尚品甄选项目
  • 理解用户需求
  • 第6章:垃圾回收分析与调优
  • Java内存模型解析:并发编程的基石
  • DARPA OFFSET公开资料探究
  • GEO优化专家孟庆涛:优质内容是GEO优化的核心
  • 后端一次性返回十万条数据时,前端需要采用多种性能优化策略来避免页面卡顿
  • 日志打印--idf的esp32
  • Agent开发基础---提示词编写
  • 【数据分享】土地利用矢量shp数据分享-北京
  • AI Agent重构SOC:下一代智能安全运营平台的能力跃迁
  • 产线自动化效率上不去?打破设备和平台的“数据孤岛”是关键!
  • LeetCode 面试题 16.06.最小差
  • JavaScript原型与原型链:对象的家族传承系统
  • Springboot3+SpringSecurity6Oauth2+vue3前后端分离认证授权-资源服务
  • 单片机键盘接口程序设计(汇编语言)
  • 血缘元数据采集开放标准:OpenLineage Guides 在 Airflow 中使用 OpenLineage Proxy
  • 快速在RK3588上部署运行DeepSeek-R1-Distill-Qwen-1.5B模型并进行板端推理调用流程记录
  • 重生之IOday4————多进程通信
  • Python学习笔记--使用Django修改和删除数据
  • Python学习笔记--使用Django查询数据
  • 网络协议之https?
  • 智能开发新突破:大模型驱动的QAC与TESSY助手实战分享
  • 【工具变量】上市公司绿色供应链管理示范企业DID数据(2010-2024年)
  • phpstorm 操作git 另外的操作在 我的收藏
  • Maven动态控制版本号秘籍:高效发包部署,版本管理不再头疼!
  • Top 10 Kali Linux Tools for Hacking 2025.2
  • 《WINDOWS 环境下32位汇编语言程序设计》第11章 动态链接库和钩子
  • nano banana官方最强Prompt模板来了!六大场景模板详解
  • GEM5学习(4): 运行全系统模式的ARM系统