免疫細胞豐度與基因表達量的相關(guān)性熱圖

1.目的

要把免疫細胞與某些基因計算相關(guān)性阅酪,并畫出熱圖绸栅,例如(圖)


2.思路

其實就是把完整的相關(guān)性矩陣切出一部分坟桅,像這樣


只拿左上角或者右下角來畫熱圖就好啦班眯。

3.代碼實現(xiàn)

3.1. ssGSEA 計算免疫細胞豐度

ssGSEA的代碼已經(jīng)在上一篇有過啦,這里就不再贅述盯捌。

rm(list = ls())
if(!require(tinyarray))devtools::install_github("xjsun1221/tinyarray")
library(tinyarray)
es = geo_download("GSE42872")
split_list(es)
#exp = log2(exp+1)
ids = idmap(gpl)
ids = ids[!duplicated(ids$symbol),]
exp = trans_array(exp,ids)
exp[1:4,1:4]

##           GSM1052615 GSM1052616 GSM1052617 GSM1052618
## LINC01128    8.75126    8.61650    8.81149    8.32067
## SAMD11       8.39069    8.52617    8.43338    9.17284
## KLHL17       8.20228    8.30886    8.18518    8.13322
## PLEKHN1      8.41004    8.37679    8.27521    8.34524

geneset = rio::import("mmc3.xlsx",skip = 2)
geneset = split(geneset$Metagene,geneset$`Cell type`)
lapply(geneset[1:3], head)

## $`Activated B cell`
## [1] "ADAM28" "CD180"  "CD79B"  "BLK"    "CD19"   "MS4A1" 
## 
## $`Activated CD4 T cell`
## [1] "AIM2"  "BIRC3" "BRIP1" "CCL20" "CCL4"  "CCL5" 
## 
## $`Activated CD8 T cell`
## [1] "ADRM1"     "AHSA1"     "C1GALT1C1" "CCT6B"     "CD37"      "CD3D"

library(GSVA)
re <- gsva(exp, geneset, method="ssgsea",
           mx.diff=FALSE, verbose=FALSE
)

3.2.計算相關(guān)性系數(shù)和p值

cor函數(shù)可以方便的計算相關(guān)性系數(shù)淳衙,而p值則需要寫循環(huán)。我不想寫循環(huán),就去搜了一下箫攀,有函數(shù)可以實現(xiàn)哦肠牲,出自Hmisc包。

library(Hmisc)
identical(colnames(re),colnames(exp))

## [1] TRUE

gs = c("CD36", "DUSP6", "DCT", "SPRY2", "MOXD1", "ETV4", "DTL", "NUPR1", 
       "ETV5", "ST6GALNAC2", "LDLR", "CCND1", "IER3", "TXNIP", "AREG", 
       "RNF150", "SCRG1", "SPRY4", "SERPINF1", "FST", "UBASH3B", "MR1", 
       "TGFA", "SESN3", "KIAA0040", "AOAH", "SLCO4A1", "AZGP1", "LCTL", 
       "CD24")
nc = t(rbind(re,exp[gs,]))
nc[1:4,1:4]

##            Activated B cell Activated CD4 T cell Activated CD8 T cell
## GSM1052615       -0.3720872           0.19193682          -0.07031845
## GSM1052616       -0.3542791           0.17935420          -0.07245836
## GSM1052617       -0.3741143           0.18833815          -0.07231844
## GSM1052618       -0.4096034           0.06878724          -0.11710947
##            Activated dendritic cell
## GSM1052615               0.09408956
## GSM1052616               0.09695546
## GSM1052617               0.09016797
## GSM1052618               0.09480261

m = rcorr(nc)$r[1:nrow(re),(ncol(nc)-length(gs)+1):ncol(nc)]
m[1:4,1:4]

##                                CD36      DUSP6        DCT      SPRY2
## Activated B cell         -0.9016301  0.8992479 -0.9067670  0.8978868
## Activated CD4 T cell     -0.9861614  0.9863182 -0.9848700  0.9887454
## Activated CD8 T cell     -0.9855525  0.9869912 -0.9905654  0.9870644
## Activated dendritic cell  0.3144122 -0.3142938  0.2868775 -0.3116635

p = rcorr(nc)$P[1:nrow(re),(ncol(nc)-length(gs)+1):ncol(nc)]
p[1:4,1:4]

##                                 CD36        DUSP6          DCT        SPRY2
## Activated B cell         0.014039022 0.0147151178 0.0126333720 0.0151082852
## Activated CD4 T cell     0.000285934 0.0002795077 0.0003416444 0.0001892849
## Activated CD8 T cell     0.000311588 0.0002527423 0.0001330987 0.0002499140
## Activated dendritic cell 0.543922358 0.5440823180 0.5814885810 0.5476413900

上面取子集的操作就是把本文開頭的相關(guān)性矩陣左上角取了下來哦靴跛,

3.3 畫圖

原圖是行名在右邊的缀雳,而pheatmap默認行名在右邊且無法修改。網(wǎng)上有大佬把pheatmap函數(shù)修改了一下梢睛,讓它無縫跑到左邊去肥印。代碼在https://stackoverflow.com/questions/57729914/how-can-you-show-the-rownames-in-pheatmap-on-the-left-side-of-the-graph。 我把他存在了modified_pheatmap.R腳本里绝葡。

library(dplyr)
tmp = matrix(case_when(p<0.01~"**",
                       p<0.05~"*",
                       T~""),nrow = nrow(p))
source("modified_pheatmap.R")
pheatmap(m,
         display_numbers =tmp,
         angle_col =45,
         color = colorRampPalette(c("#92b7d1", "white", "#d71e22"))(100),
         border_color = "white",
         treeheight_col = 0,
         treeheight_row = 0)

齊活兒深碱!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市藏畅,隨后出現(xiàn)的幾起案子敷硅,更是在濱河造成了極大的恐慌,老刑警劉巖愉阎,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件绞蹦,死亡現(xiàn)場離奇詭異,居然都是意外死亡诫硕,警方通過查閱死者的電腦和手機坦辟,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來章办,“玉大人锉走,你說我怎么就攤上這事∨航欤” “怎么了挪蹭?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長休偶。 經(jīng)常有香客問我梁厉,道長,這世上最難降的妖魔是什么踏兜? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任词顾,我火速辦了婚禮,結(jié)果婚禮上碱妆,老公的妹妹穿的比我還像新娘肉盹。我一直安慰自己,他們只是感情好疹尾,可當我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布上忍。 她就那樣靜靜地躺著骤肛,像睡著了一般。 火紅的嫁衣襯著肌膚如雪窍蓝。 梳的紋絲不亂的頭發(fā)上腋颠,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天,我揣著相機與錄音吓笙,去河邊找鬼淑玫。 笑死,一個胖子當著我的面吹牛观蓄,可吹牛的內(nèi)容都是我干的混移。 我是一名探鬼主播祠墅,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼侮穿,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了毁嗦?” 一聲冷哼從身側(cè)響起亲茅,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎狗准,沒想到半個月后克锣,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡腔长,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年袭祟,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片捞附。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡巾乳,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出鸟召,到底是詐尸還是另有隱情胆绊,我是刑警寧澤,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布欧募,位于F島的核電站压状,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏跟继。R本人自食惡果不足惜种冬,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望舔糖。 院中可真熱鬧娱两,春花似錦、人聲如沸剩盒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至纪挎,卻和暖如春期贫,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背异袄。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工通砍, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人烤蜕。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓封孙,卻偏偏與公主長得像,于是被迫代替她去往敵國和親讽营。 傳聞我的和親對象是個殘疾皇子虎忌,可洞房花燭夜當晚...
    茶點故事閱讀 42,901評論 2 345

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