RNA-seq入門實戰(zhàn)(九):PPI蛋白互作網(wǎng)絡構(gòu)建(上)——STRING數(shù)據(jù)庫的使用

本節(jié)概覽:
1.STRING數(shù)據(jù)庫基本介紹
2.STRING R語言版——STRINGdb的使用:
①STRINGdb數(shù)據(jù)庫導入 ②獲取STRING_id ③PPI繪制
④clustering分簇 ⑤富集分析 ⑥獲取蛋白互作信息
3.STRING 網(wǎng)頁版的簡單使用:
文件上傳、各選項設置、數(shù)據(jù)導出


在得到我們感興趣的基因集后嗤锉,除了對其進行GO等富集分析查看與什么重要的生物學通路相關(guān)咪奖,還可以進行PPI蛋白互作網(wǎng)絡(PPI, Protein-Protein Interaction Networks)的構(gòu)建系宫,查看這些基因之間的聯(lián)系靶壮,進而鎖定關(guān)鍵基因从诲。
關(guān)于關(guān)鍵基因种蝶、hub基因契耿,這篇文章說得很詳細:關(guān)鍵基因和hub基因(生物網(wǎng)絡角度)
構(gòu)建PPI網(wǎng)絡一般需要使用string數(shù)據(jù)庫獲取蛋白互作信息以及進行互作網(wǎng)絡的可視化螃征。下面探究一下STRING數(shù)據(jù)庫的網(wǎng)頁和R語言版的使用:
其他數(shù)據(jù)庫的使用:
跟著Cell學作圖|9.PPI分析(GeNets數(shù)據(jù)庫)


1. STRING 數(shù)據(jù)庫基本介紹

官網(wǎng): STRING: functional protein association networks (string-db.org)
R語言版本:Bioconductor - STRINGdb

  • STRING是一個已知和預測的蛋白質(zhì)-蛋白質(zhì)相互作用的數(shù)據(jù)庫搪桂。
    相互作用包括直接(物理)和間接(功能)聯(lián)系;它們源于計算預測、生物之間的知識轉(zhuǎn)移盯滚,以及其他(主要)數(shù)據(jù)庫聚合的交互作用踢械。
    STRING中的相互作用有五個主要來源:基因組預測、高通量實驗魄藕、(保守的)共表達實驗内列、自動化文本挖掘、數(shù)據(jù)庫相關(guān)知識泼疑。
    STRING數(shù)據(jù)庫目前涵蓋了來自5′090個物種的24′584′628個蛋白質(zhì)德绿。
    image.png

2. STRING的R語言版——STRINGdb的使用

STRINGdb說明書:STRINGdb.pdf (bioconductor.org)或使用命令vignette("STRINGdb")在本地查看說明書荷荤。查看STRINGdb的函數(shù)幫助文檔比較特殊,要用STRINGdb$help("get_graph")的形式移稳。
使用STRINGdb時蕴纳,參數(shù)species代表NCBI Taxonomy物種編碼,可在此查詢:https://cn.string-db.org/cgi/input.pl?input_page_active_form=organisms个粱,其中人為9606古毛,小鼠為10090 。

① STRINGdb數(shù)據(jù)庫導入

  • 首先選擇載入的STRINGdb數(shù)據(jù)(數(shù)據(jù)庫版本都许、物種稻薇、蛋白互作得分)和之前基因差異分析得到的DEG。
    STRINGdb$new設置使用最新的11.5版本數(shù)據(jù)庫胶征,物種選擇為小鼠(人9606塞椎,小鼠10090 ),蛋白互作得分閾值選擇700(默認400, 低150睛低,高700案狠,極高900,越高可信度越強)钱雷。
    DEG結(jié)果中選取前100顯著差異基因用于后續(xù)分析骂铁,并將其基因名保存為gene_diff100.txt文件用于后續(xù)STRING網(wǎng)頁版的使用(特別注意write.table要設quote = F,讓字符不要帶引號 罩抗,否則后續(xù)上傳 STRING容易識別錯誤)
rm(list = ls()) 
options(stringsAsFactors = F)
library(tidyverse)  # ggplot2 stringer dplyr tidyr readr purrr  tibble forcats
library(STRINGdb) #BiocManager::install(c("STRINGdb","igraph"),ask = F,update = F)
library(igraph)

setwd("C:/Users/Lenovo/Desktop/test")
load(file = './3.DEG/test_DEG_results.Rdata')
dir.create("7.PPI")
setwd("7.PPI")
######################### 選擇STRINGdb類型 #########################
string_db <- STRINGdb$new( version="11.5", #數(shù)據(jù)庫版本拉庵。截止2022.5.24最新為11.5
                           species=10090,   #人9606,小鼠10090 
                           score_threshold=700, #蛋白互作的得分 默認400, 低150套蒂,高700钞支,極高900
                           input_directory="") #可自己導入數(shù)據(jù)
########################## 獲取DEG結(jié)果 ############################
##  篩選條件設置 
log2FC_cutoff = log2(2)
pvalue_cutoff = 0.05
padj_cutoff = 0.05
## 選擇DEG
need_deg <- DEG_DESeq2[,c(2,5,6)] ; head(need_deg) 
colnames(need_deg) <- c('log2FC','pvalue','padj'); head(need_deg)
need_deg$gene <- rownames(need_deg); head(need_deg)      #gene symbol或ENTREZID都可
if(T){  
  gene_up=need_deg[with(need_deg,log2FC>log2FC_cutoff & pvalue<pvalue_cutoff & padj<padj_cutoff),]
  gene_down=need_deg[with(need_deg,log2FC < -log2FC_cutoff & pvalue<pvalue_cutoff & padj<padj_cutoff),]
  gene_diff=need_deg[with(need_deg,abs(log2FC)>log2FC_cutoff & pvalue<pvalue_cutoff & padj<padj_cutoff),]
}
dim(gene_up);dim(gene_down);dim(gene_diff)
dat <- gene_diff[1:100] ##這里選取前100顯著基因用于后續(xù)分析
write.table(rownames(dat),'gene_diff100.txt',row.names = F,col.names = F,quote = F) #字符不要帶引號 

② 獲取STRING_id

  • 使用map獲取基因名對應的STRING_id用于繪制string_PPI , 基因名為gene symbol或ENTREZID都可以直接對應獲取STRING_id
dat_map <- string_db$map(my_data_frame=dat, 
                         my_data_frame_id_col_names="gene", #使用gene symbol或ENTREZID都可
                         removeUnmappedRows = TRUE )
hits <- dat_map$STRING_id 

③ PPI蛋白互作網(wǎng)絡繪制

  • 完成以上步驟后使用plot_network即可繪制PPI圖泣懊,還可以給PPI添加上下調(diào)信息(上調(diào)標記為紅色光環(huán)伸辟,下調(diào)標記為綠色光環(huán))
## PPI
png("string_PPI.png",units="in",width = 10,height = 10, res=400)
string_db$plot_network(hits)
dev.off()
## PPI_halo  #給PPI添加上下調(diào)信息
# filter by p-value and add a color column(i.e.green for down and red for up genes)
dat_map_color <- string_db$add_diff_exp_color(subset(dat_map, pvalue<0.01),
                                                  logFcColStr="log2FC" )
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()
string_PPI.png

string_PPI_halo.png

④ clustering分簇

  • STRINGdb還能調(diào)用iGraph進行PPI的clustering分簇,get_clusters有這些算法可以選擇: fastgreedy(默認), walktrap, edge.betweenness馍刮,以下代碼演示了用 fastgreedy方法對PPI進行clustering,并展示前6個cluster
## iGraph clustering 互作網(wǎng)絡分簇
#algorithm: fastgreedy(默認), walktrap, edge.betweenness
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()
string_PPI_iGraph_cluster.png

⑤ 富集分析

  • 除了以上功能窃蹋,STRINGdb還能對基因集進行富集分析卡啰,參數(shù)category指定要使用的數(shù)據(jù)庫(默認為All),其中Process, Component, Function分別對應GO的BP,CC,MF三個子集
#category: All, Process, Component, Function, Keyword, KEGG, RCTM, Pfam, SMART, InterPro
enrichment <- string_db$get_enrichment(string_ids = hits,
                                       category   = "Process" ) 
write.csv(enrichment,"enrichment_GO_BP.csv")
enrichment部分結(jié)果

⑥ 獲取蛋白互作信息

  • 最后警没,可使用get_interactions獲取蛋白互作信息匈辱,再轉(zhuǎn)換stringID為 gene symbol,去除重復(每個相互作用會出現(xiàn)兩次)杀迹,之后導出string_link.csv文件亡脸,可在Cytoscape中進一步進行多種可視化操作
############################## 獲取蛋白互作信息用于后續(xù)可視化 ###############3
dat_link <- string_db$get_interactions(hits)
# 轉(zhuǎn)換stringID為 gene symbol
dat_link$from <- dat_map[match(dat_link$from,dat_map$STRING_id),'gene']
dat_link$to <- dat_map[match(dat_link$to,dat_map$STRING_id),'gene']  
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)

3. STRING網(wǎng)頁版的簡單使用

  • 登錄STRING網(wǎng)頁STRING: functional protein association networks
    Mutiple proteins中上傳我們前面得到的gene_diff200.txt,或者直接將基因名粘貼在第一個框中浅碾,再選擇物種organism為Mus musculus大州。

  • 點擊SEARCH,會進行匹配string中對應的蛋白垂谢,大致預覽一下確認正確后厦画,點擊CONTINUE即可得PPI圖像

SEARCH后界面

分析界面
  • 在分析界面的Vierws選項下可以選擇多種展現(xiàn)方式,Legend選項下展現(xiàn)圖像各標記的含義滥朱;
    Vierws選項

    Legend選項
  • Settings選項下有多項參數(shù)可以選擇根暑,例如minimum required interaction score可以選擇高可信度0.700(默認為0.400),選擇完成后點擊UPDATE即可更新圖像徙邻。
    可以看到調(diào)整可信度為0.700后與之前在R中所得圖像是一致的
Settings選項

調(diào)整參數(shù)后所得圖像
  • Analysis選項下有PPI網(wǎng)絡的相關(guān)節(jié)點信息與GO排嫌、KEGG等富集分析結(jié)果

    Analysis選項

  • Cluster選項下還可以對PPI網(wǎng)絡進行分簇,選擇分簇方法(如:kmeans clustering)和分簇數(shù)量(如:4)后點擊APPLY即可缰犁,不同分簇會用不同顏色標注出來

    Cluster選項

    Cluster圖像

  • Export選項下進行數(shù)據(jù)導出躏率,一般選擇下載高分辨率的PNG圖片與蛋白互作關(guān)系TSV文件(下圖黃色標記處),TSV文件用于后續(xù)在Cytoscape中進一步可視化PPI網(wǎng)絡

    Export選項


參考資料
STRINGdb.pdf (bioconductor.org)
用R的bioconductor里面的stringDB包來做PPI分析 | 生信菜鳥團 (bio-info-trainee.com)


RNA-seq實戰(zhàn)系列文章:
RNA-seq入門實戰(zhàn)(零):RNA-seq流程前的準備——Linux與R的環(huán)境創(chuàng)建
RNA-seq入門實戰(zhàn)(一):上游數(shù)據(jù)下載民鼓、格式轉(zhuǎn)化和質(zhì)控清洗
RNA-seq入門實戰(zhàn)(二):上游數(shù)據(jù)的比對計數(shù)——Hisat2+ featureCounts 與 Salmon
RNA-seq入門實戰(zhàn)(三):從featureCounts與Salmon輸出文件獲取counts矩陣
RNA-seq入門實戰(zhàn)(四):差異分析前的準備——數(shù)據(jù)檢查
RNA-seq入門實戰(zhàn)(五):差異分析——DESeq2 edgeR limma的使用與比較
RNA-seq入門實戰(zhàn)(六):GO薇芝、KEGG富集分析與enrichplot超全可視化攻略
RNA-seq入門實戰(zhàn)(七):GSEA——基因集富集分析
RNA-seq入門實戰(zhàn)(八):GSVA——基因集變異分析
RNA-seq入門實戰(zhàn)(九):PPI蛋白互作網(wǎng)絡構(gòu)建(上)——STRING數(shù)據(jù)庫的使用
RNA-seq入門實戰(zhàn)(十):PPI蛋白互作網(wǎng)絡構(gòu)建(下)——Cytoscape軟件的使用
RNA-seq入門實戰(zhàn)(十一):WGCNA加權(quán)基因共表達網(wǎng)絡分析——關(guān)聯(lián)基因模塊與表型

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市丰嘉,隨后出現(xiàn)的幾起案子夯到,更是在濱河造成了極大的恐慌,老刑警劉巖饮亏,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件耍贾,死亡現(xiàn)場離奇詭異,居然都是意外死亡路幸,警方通過查閱死者的電腦和手機荐开,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來简肴,“玉大人晃听,你說我怎么就攤上這事∨槭叮” “怎么了能扒?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長辫狼。 經(jīng)常有香客問我初斑,道長,這世上最難降的妖魔是什么膨处? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任见秤,我火速辦了婚禮砂竖,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘鹃答。我一直安慰自己乎澄,他們只是感情好,可當我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布挣跋。 她就那樣靜靜地躺著三圆,像睡著了一般。 火紅的嫁衣襯著肌膚如雪避咆。 梳的紋絲不亂的頭發(fā)上舟肉,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天,我揣著相機與錄音查库,去河邊找鬼路媚。 笑死,一個胖子當著我的面吹牛樊销,可吹牛的內(nèi)容都是我干的整慎。 我是一名探鬼主播,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼围苫,長吁一口氣:“原來是場噩夢啊……” “哼裤园!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起剂府,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤拧揽,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后腺占,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體淤袜,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年衰伯,在試婚紗的時候發(fā)現(xiàn)自己被綠了铡羡。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡意鲸,死狀恐怖烦周,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情临扮,我是刑警寧澤论矾,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站杆勇,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏饱亿。R本人自食惡果不足惜蚜退,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一闰靴、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧钻注,春花似錦蚂且、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至捆交,卻和暖如春淑翼,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背品追。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工玄括, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人肉瓦。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓遭京,卻偏偏與公主長得像,于是被迫代替她去往敵國和親泞莉。 傳聞我的和親對象是個殘疾皇子哪雕,可洞房花燭夜當晚...
    茶點故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容