相關性網(wǎng)絡圖

寫在前面
我8月26號踏著歡快的腳步回家度假,原計劃9月5號回珠海洲拇,結(jié)果返程飛機被連環(huán)取消了三次奈揍,我滯留在家5天了,已經(jīng)搭好戲臺子在家講課赋续,打算等沒課的周天再走男翰。。纽乱。

1.從一個表達矩陣開始

相關性網(wǎng)絡圖一般都是經(jīng)過若干步驟選出來幾個感興趣的基因展示一下蛾绎,下面的這個例子用我的小R包tinyarray獲取表達矩陣和做探針注釋、差異分析了迫淹,相當于對芯片常規(guī)分析的一個簡化操作秘通。

#devtools::install_github("xjsun1221/tinyarray")
library(tinyarray)
gse = "GSE42872"
geo = geo_download(gse,destdir=tempdir(),by_annopbrobe = FALSE)
Group = rep(c("control","treat"),each = 3)
Group = factor(Group)
find_anno(geo$gpl)
## [1] "`library(hugene10sttranscriptcluster.db);ids <- toTable(hugene10sttranscriptclusterSYMBOL)` and `ids <- AnnoProbe::idmap('GPL6244')` are both avaliable"
ids <- AnnoProbe::idmap(geo$gpl,destdir = tempdir())
deg = get_deg(geo$exp,Group,ids)

這個deg就是經(jīng)過整理的差異分析結(jié)果表格。

head(deg)
##       logFC   AveExpr         t      P.Value    adj.P.Val        B probe_id
## 1  5.780170  7.370282  82.94833 3.495205e-12 1.163798e-07 16.32898  8133876
## 2 -4.212683  9.106625 -68.40113 1.437468e-11 2.393169e-07 15.71739  7965335
## 3  5.633027  8.763220  57.61985 5.053466e-11 4.431880e-07 15.04752  7972259
## 4 -3.801663  9.726468 -57.21112 5.324059e-11 4.431880e-07 15.01709  7972217
## 5  3.263063 10.171635  50.51733 1.324638e-10 8.821294e-07 14.45166  8129573
## 6 -3.843247  9.667077 -45.87910 2.681063e-10 1.487856e-06 13.97123  8015806
##   symbol change ENTREZID
## 1   CD36     up      948
## 2  DUSP6   down     1848
## 3    DCT     up     1638
## 4  SPRY2   down    10253
## 5  MOXD1     up    26002
## 6   ETV4   down     2118

把表達矩陣轉(zhuǎn)換一下敛熬,并選了top10差異基因用于做后續(xù)的網(wǎng)絡圖

exp = trans_array(geo$exp,ids)
cg = deg$symbol[deg$change!="stable"]
set.seed(10086)
exp = exp[head(cg,10),]
exp[1:4,1:4]
##       GSM1052615 GSM1052616 GSM1052617 GSM1052618
## CD36     4.54610    4.40210    4.49239   10.25060
## DUSP6   11.25310   11.20760   11.17820    6.98791
## DCT      5.81479    5.91209    6.11324   11.54910
## SPRY2   11.64830   11.63730   11.59630    7.90508

2.計算相關性

根據(jù)相關系數(shù)和p值做了個分組肺稀,用于后面的配色了,我用的是0.3应民,這個閾值可以調(diào)整话原。

library(corrplot)
M = cor(t(exp))
testRes = cor.mtest(t(exp), conf.level = 0.95)$p
library(tidyverse)
g = pivot_longer(rownames_to_column(as.data.frame(M),var = "from"),
             cols = 2:(ncol(M)+1),
             names_to = "to",
             values_to = "cor")
gp = pivot_longer(rownames_to_column(as.data.frame(testRes)),
             cols = 2:(ncol(M)+1),
             names_to = "gene",
             values_to = "p")
g$p = gp$p
g = g[g$from!=g$to,]
g$group = case_when(g$cor>0.3 & g$p<0.05 ~ "positive",
                    g$cor< -0.3 & g$p<0.05 ~ "negative",
                    T~"not" )
head(g)
## # A tibble: 6 x 5
##   from  to       cor            p group   
##   <chr> <chr>  <dbl>        <dbl> <chr>   
## 1 CD36  DUSP6 -1.00  0.0000000933 negative
## 2 CD36  DCT    0.999 0.00000196   positive
## 3 CD36  SPRY2 -1.00  0.000000226  negative
## 4 CD36  MOXD1  1.00  0.0000000840 positive
## 5 CD36  ETV4  -0.999 0.00000208   negative
## 6 CD36  DTL   -0.999 0.00000168   negative

上面這個g就是網(wǎng)絡圖的輸入數(shù)據(jù)了

3.畫圖

正相關和負相關分別用紅色和藍色表示咯。

library(igraph)
network =  graph_from_data_frame(d=g[g$group!="not",c(1,2,3,5)], directed=F) 

my_color = c("#2874C5","#f87669")[as.numeric(as.factor(E(network)$group))]
par(bg="white", mar=c(0,0,0,0))
plot(network,
     vertex.size=20,
     layout=layout.circle,
     vertex.label.cex=0.7,
     vertex.frame.color="transparent",
     edge.width=abs(E(network)$cor)*3,
     edge.color=my_color,edge.curved = 0.2)

4.專用的相關性網(wǎng)絡圖R包

發(fā)現(xiàn)一個哭笑不得的現(xiàn)象诲锹,如果這些基因相關性太強了繁仁,這個專用的R包畫圖還疊到一起了,不是個例归园,我換電腦試過了哈哈黄虱。

library(tidyverse)
t(exp) %>% corrr::correlate() %>%
  corrr::network_plot(colours = c("#2874C5", "white", "#f87669"),repel = F,min_cor = .5)

反而是他們的相關性不特別強時,才比較好看庸诱,錯落有致了咧捻浦。

exp = trans_array(geo$exp,ids)
set.seed(100)
cg = sample(1:nrow(exp),10)
exp = exp[cg,]
t(exp) %>% corrr::correlate() %>%
  corrr::network_plot(colours = c("#2874C5", "white", "#f87669"),repel = F,min_cor = .5)

奇妙的體驗晤揣。

?著作權(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)容