转录组数据分析—PPI网络构建

在得到我们感兴趣的基因集后,除了对其进行GO等富集分析查看与什么重要的生物学通路相关,还可以进行PPI蛋白互作网络(PPI, Protein-Protein Interaction Networks)的构建,查看这些基因之间的联系,进而锁定关键基因。
构建PPI网络一般需要使用string数据库获取蛋白互作信息以及进行互作网络的可视化。下面探究一下STRING数据库的网页和R语言版的使用:

STRING数据库

官网: STRING V11.5

R包:Bioconductor - STRINGdb

STRING是一个已知和预测的蛋白质-蛋白质相互作用的数据库。 相互作用包括直接(物理)和间接(功能)联系;它们源于计算预测、文本关联,以及其他(主要)数据库总结的交互作用。STRING中的相互作用有五个主要来源:基因组预测、高通量实验、(保守的)共表达实验、自动化文本挖掘、数据库相关知识。STRING数据库目前涵盖了来自14'094个物种的67'592'464个蛋白质。

STRING网页版的简单使用

登录STRING网页。 在Mutiple proteins中将差异基因名(转录组数据分析—DEseq2差异分析 - 简书 (jianshu.com)粘贴在第一个框中,再选择物种organism为Homo sapiens。

点击SEARCH,会进行匹配string中对应的蛋白,大致预览一下确认正确后,点击CONTINUE即可得PPI图像

出现这种提示不要紧,是因为我们上传的基因太多了,点击CONTINUE即可

在分析界面的Vierws选项下可以选择多种展现方式,Legend选项下展现图像各标记的含义;

Settings选项下有多项参数可以选择,例如minimum required interaction score可以调节可信度(默认为0.400),选择完成后点击UPDATE即可更新图像。

Analysis选项下有PPI网络的相关节点信息与GO、KEGG等富集分析结果

Cluster选项下还可以对PPI网络进行分簇,选择分簇方法(如:kmeans clustering)和分簇数量(如:4)后点击APPLY即可,不同分簇会用不同颜色标注出来

Export选项下进行数据导出,一般选择下载高分辨率的PNG图片与蛋白互作关系TSV文件(下图画红框),TSV文件用于后续在Cytoscape中进一步可视化PPI网络

STRING的R语言版——STRINGdb的使用

STRINGdb说明书:STRINGdb.pdf (bioconductor.org)或使用命令vignette("STRINGdb")在本地查看说明书。查看STRINGdb的函数帮助文档比较特殊,要用STRINGdb$help("get_graph")的形式。 使用STRINGdb时,参数species代表NCBI Taxonomy物种编码,可在此查询:https://cn.string-db.org/cgi/input.pl?input_page_active_form=organisms,其中人为9606,小鼠为10090,大鼠为10116 。

绘制PPI网络

上代码!

library(tidyverse)
library(STRINGdb)                                                 
library(igraph)

data <- read.table("diff_gene_deseq2_FDR.xls",header=T,sep = "\t")
test<-data[1:100,]

######################### 选择STRINGdb类型 #########################
string_db <- STRINGdb$new( version="11.5", #数据库版本。截止2022.5.24最新为11.5
                           species=9606,   #人9606,小鼠10090 
                           score_threshold=700, #蛋白互作的得分 默认400, 低150,高700,极高900
                           input_directory="") #可自己导入数据

######################### 获取基因名对应的STRING_id用于绘制string_PPI #########################
dat_map <- string_db$map(my_data_frame=test, 
                         my_data_frame_id_col_names="gene_id", #使用gene symbol或ENTREZID都可
                         removeUnmappedRows = TRUE )
hits <- dat_map$STRING_id

######################### 绘制PPI网络 #########################
png("string_PPI.png",units="in",width = 10,height = 10, res=400)
string_db$plot_network(hits)
dev.off()

还可以注释一下基因的上下调信息

dat_map_color <- string_db$add_diff_exp_color(subset(dat_map, pvalue<0.01),
                                              logFcColStr="log2FoldChange" )
payload_id <- string_db$post_payload(dat_map_color$STRING_id,
                                     colors=dat_map_color$color)
png("string_PPI_halo.png",units="in",width = 10,height = 10, res=400)
string_db$plot_network(hits, payload_id=payload_id )
dev.off()

STRINGdb还能调用iGraph进行PPI的clustering分簇

clustersList <- string_db$get_clusters(string_ids = hits ,
                                       algorithm  = "fastgreedy" ) 
# plot first 6 clusters.
png("string_PPI_iGraph_cluster.png",units="in",width = 15,height = 10,res=400)
par(mfrow=c(2,3))
for(i in 1:6){
  string_db$plot_network(clustersList[[i]])
}
dev.off()
###可供选择的聚类算法"fastgreedy", "walktrap", "spinglass", "edge.betweenness"</pre>

除了以上功能,STRINGdb还能对基因集进行富集分析,参数category指定要使用的数据库(默认为All),其中Process, Component, Function分别对应GO的BP,CC,MF三个子集

enrichment <- string_db$get_enrichment(string_ids = hits,
                                       category   = "Process" ) 
write.csv(enrichment,"enrichment_GO_BP.csv")</pre>

最后,可使用get_interactions获取蛋白互作信息,再转换stringID为 gene symbol,去除重复(每个相互作用会出现两次),之后导出string_link.csv文件,可在Cytoscape中进一步进行多种可视化操作

dat_link <- string_db$get_interactions(hits)
# 转换stringID为 gene symbol
dat_link$from <- dat_map[match(dat_link$from,dat_map$STRING_id),'gene_id']
dat_link$to <- dat_map[match(dat_link$to,dat_map$STRING_id),'gene_id']  
colnames(dat_link) <- c('node1','node2','combined_score')
# 去除重复
dat_link <- dat_link %>% distinct(node1, node2, .keep_all = T)

write.csv(dat_link,'string_link.csv',row.names = F,quote = F)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,340评论 5 467
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,762评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,329评论 0 329
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,678评论 1 270
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,583评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,995评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,493评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,145评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,293评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,250评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,267评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,973评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,556评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,648评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,873评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,257评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,809评论 2 339

推荐阅读更多精彩内容