轉(zhuǎn)錄組數(shù)據(jù)分析—PPI網(wǎng)絡(luò)構(gòu)建

在得到我們感興趣的基因集后,除了對其進(jìn)行GO等富集分析查看與什么重要的生物學(xué)通路相關(guān),還可以進(jìn)行PPI蛋白互作網(wǎng)絡(luò)(PPI, Protein-Protein Interaction Networks)的構(gòu)建,查看這些基因之間的聯(lián)系,進(jìn)而鎖定關(guān)鍵基因。
構(gòu)建PPI網(wǎng)絡(luò)一般需要使用string數(shù)據(jù)庫獲取蛋白互作信息以及進(jìn)行互作網(wǎng)絡(luò)的可視化。下面探究一下STRING數(shù)據(jù)庫的網(wǎng)頁和R語言版的使用:

STRING數(shù)據(jù)庫

官網(wǎng): STRING V11.5

R包:Bioconductor - STRINGdb

STRING是一個已知和預(yù)測的蛋白質(zhì)-蛋白質(zhì)相互作用的數(shù)據(jù)庫。 相互作用包括直接(物理)和間接(功能)聯(lián)系;它們源于計算預(yù)測、文本關(guān)聯(lián),以及其他(主要)數(shù)據(jù)庫總結(jié)的交互作用。STRING中的相互作用有五個主要來源:基因組預(yù)測、高通量實驗、(保守的)共表達(dá)實驗、自動化文本挖掘、數(shù)據(jù)庫相關(guān)知識。STRING數(shù)據(jù)庫目前涵蓋了來自14'094個物種的67'592'464個蛋白質(zhì)。

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

登錄STRING網(wǎng)頁。 在Mutiple proteins中將差異基因名(轉(zhuǎn)錄組數(shù)據(jù)分析—DEseq2差異分析 - 簡書 (jianshu.com)粘貼在第一個框中,再選擇物種organism為Homo sapiens。

點擊SEARCH,會進(jìn)行匹配string中對應(yīng)的蛋白,大致預(yù)覽一下確認(rèn)正確后,點擊CONTINUE即可得PPI圖像

出現(xiàn)這種提示不要緊,是因為我們上傳的基因太多了,點擊CONTINUE即可

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

Settings選項下有多項參數(shù)可以選擇,例如minimum required interaction score可以調(diào)節(jié)可信度(默認(rèn)為0.400),選擇完成后點擊UPDATE即可更新圖像。

Analysis選項下有PPI網(wǎng)絡(luò)的相關(guān)節(jié)點信息與GO、KEGG等富集分析結(jié)果

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

Export選項下進(jìn)行數(shù)據(jù)導(dǎo)出,一般選擇下載高分辨率的PNG圖片與蛋白互作關(guān)系TSV文件(下圖畫紅框),TSV文件用于后續(xù)在Cytoscape中進(jìn)一步可視化PPI網(wǎng)絡(luò)

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,大鼠為10116 。

繪制PPI網(wǎng)絡(luò)

上代碼!

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", #數(shù)據(jù)庫版本。截止2022.5.24最新為11.5
                           species=9606,   #人9606,小鼠10090 
                           score_threshold=700, #蛋白互作的得分 默認(rèn)400, 低150,高700,極高900
                           input_directory="") #可自己導(dǎo)入數(shù)據(jù)

######################### 獲取基因名對應(yīng)的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網(wǎng)絡(luò) #########################
png("string_PPI.png",units="in",width = 10,height = 10, res=400)
string_db$plot_network(hits)
dev.off()

還可以注釋一下基因的上下調(diào)信息

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還能調(diào)用iGraph進(jìn)行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還能對基因集進(jìn)行富集分析,參數(shù)category指定要使用的數(shù)據(jù)庫(默認(rèn)為All),其中Process, Component, Function分別對應(yīng)GO的BP,CC,MF三個子集

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

最后,可使用get_interactions獲取蛋白互作信息,再轉(zhuǎn)換stringID為 gene symbol,去除重復(fù)(每個相互作用會出現(xiàn)兩次),之后導(dǎo)出string_link.csv文件,可在Cytoscape中進(jìn)一步進(jìn)行多種可視化操作

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_id']
dat_link$to <- dat_map[match(dat_link$to,dat_map$STRING_id),'gene_id']  
colnames(dat_link) <- c('node1','node2','combined_score')
# 去除重復(fù)
dat_link <- dat_link %>% distinct(node1, node2, .keep_all = T)

write.csv(dat_link,'string_link.csv',row.names = F,quote = F)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容