pySCENIC的轉(zhuǎn)錄因子分析及數(shù)據(jù)可視化(三)

參考生信技能樹:
pyscenic的轉(zhuǎn)錄因子分析結(jié)果展示之5種可視化
pyscenic的轉(zhuǎn)錄因子分析結(jié)果展示之各個單細(xì)胞亞群特異性激活轉(zhuǎn)錄因子
上一篇見:
pySCENIC的轉(zhuǎn)錄因子分析及數(shù)據(jù)可視化(一)
pySCENIC的轉(zhuǎn)錄因子分析及數(shù)據(jù)可視化(二)

本次內(nèi)容主要各個單細(xì)胞亞群特異性激活轉(zhuǎn)錄因子及可視化匹表。首先再次回顧一下pyscenic的轉(zhuǎn)錄因子分析結(jié)果

######  step0 加載 各種R包  #####

rm(list=ls())
library(Seurat)
library(SCopeLoomR)
library(AUCell)
library(SCENIC)
library(dplyr)
library(KernSmooth)
library(RColorBrewer)
library(plotly)
library(BiocParallel)
library(grid)
library(ComplexHeatmap)
library(data.table)
library(scRNAseq)

load('for_rss_and_visual.Rdata')
head(cellTypes) 
sub_regulonAUC[1:4,1:2] 
dim(sub_regulonAUC)
#[1]  220 2638

值得一提的是這個pbmc3k數(shù)據(jù)集的兩千多個細(xì)胞辜腺,其實(shí)就220個轉(zhuǎn)錄因子結(jié)果(曾老師教程里面是208個)。

1. TF活性均值

看看不同單細(xì)胞亞群的轉(zhuǎn)錄因子活性平均值

# Split the cells by cluster:
selectedResolution <- "celltype" # select resolution
cellsPerGroup <- split(rownames(cellTypes), 
                       cellTypes[,selectedResolution]) 

# 去除extened regulons
sub_regulonAUC <- sub_regulonAUC[onlyNonDuplicatedExtended(rownames(sub_regulonAUC)),] 
dim(sub_regulonAUC)
#[1]  220 2638 #似乎沒啥區(qū)別

# Calculate average expression:
regulonActivity_byGroup <- sapply(cellsPerGroup,
                                  function(cells) 
                                    rowMeans(getAUC(sub_regulonAUC)[,cells]))

# Scale expression. 
# Scale函數(shù)是對列進(jìn)行歸一化碉渡,所以要把regulonActivity_byGroup轉(zhuǎn)置成細(xì)胞為行聚谁,基因?yàn)榱?# 參考:http://www.reibang.com/p/115d07af3029
regulonActivity_byGroup_Scaled <- t(scale(t(regulonActivity_byGroup),
                                          center = T, scale=T)) 
# 同一個regulon在不同cluster的scale處理
dim(regulonActivity_byGroup_Scaled)
#[1] 220   9
regulonActivity_byGroup_Scaled=regulonActivity_byGroup_Scaled[]
regulonActivity_byGroup_Scaled=na.omit(regulonActivity_byGroup_Scaled)

2. 熱圖查看TF分布

pheatmap(regulonActivity_byGroup_Scaled)

這里碰到一個怪事,一開始用pheatmap:pheatmap(regulonActivity_byGroup_Scaled) 滞诺,這樣寫報錯:Error in pheatmap:pheatmap(regulonActivity_byGroup_Scaled) : NA/NaN argument形导。


image.png

可以看到,確實(shí)每個單細(xì)胞亞群都是有 自己的特異性的激活的轉(zhuǎn)錄因子习霹。

3. rss查看特異TF

不過朵耕,SCENIC包自己提供了一個 calcRSS函數(shù),幫助我們來挑選各個單細(xì)胞亞群特異性的轉(zhuǎn)錄因子淋叶,全稱是:Calculates the regulon specificity score

參考文章:The RSS was first used by Suo et al. in: Revealing the Critical Regulators of Cell Identity in the Mouse Cell Atlas. Cell Reports (2018). doi: 10.1016/j.celrep.2018.10.045
運(yùn)行超級簡單阎曹。

rss <- calcRSS(AUC=getAUC(sub_regulonAUC), 
               cellAnnotation=cellTypes[colnames(sub_regulonAUC), 
                                           selectedResolution]) 
rss=na.omit(rss) 
rssPlot <- plotRSS(rss)
plotly::ggplotly(rssPlot$plot)
image.png

PAX5(+)和REL(+)的確在B細(xì)胞里面高表達(dá)。

4. 其他查看TF方式

library(dplyr) 
rss=regulonActivity_byGroup_Scaled
head(rss)
library(dplyr) 
df = do.call(rbind,
             lapply(1:ncol(rss), function(i){
               dat= data.frame(
                 path  = rownames(rss),
                 cluster =   colnames(rss)[i],
                 sd.1 = rss[,i],
                 sd.2 = apply(rss[,-i], 1, median)  
               )
             }))
df$fc = df$sd.1 - df$sd.2
top5 <- df %>% group_by(cluster) %>% top_n(5, fc)
rowcn = data.frame(path = top5$cluster) 
n = rss[top5$path,] 
#rownames(rowcn) = rownames(n)
pheatmap(n,
         annotation_row = rowcn,
         show_rownames = T)
image.png

也可以按照sd計算df的sd.2


image.png

或者按照mean計算df的sd.2


image.png

在這里似乎median煞檩、sd处嫌、mean都差不多。

至此斟湃, pySCENIC的轉(zhuǎn)錄因子分析及數(shù)據(jù)可視化教程復(fù)現(xiàn)結(jié)束熏迹,感謝曾老師和生信技能樹。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末凝赛,一起剝皮案震驚了整個濱河市注暗,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌墓猎,老刑警劉巖捆昏,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異陶衅,居然都是意外死亡屡立,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來膨俐,“玉大人勇皇,你說我怎么就攤上這事》俅蹋” “怎么了敛摘?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長乳愉。 經(jīng)常有香客問我兄淫,道長,這世上最難降的妖魔是什么蔓姚? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任捕虽,我火速辦了婚禮,結(jié)果婚禮上坡脐,老公的妹妹穿的比我還像新娘泄私。我一直安慰自己,他們只是感情好备闲,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布晌端。 她就那樣靜靜地躺著,像睡著了一般恬砂。 火紅的嫁衣襯著肌膚如雪咧纠。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天泻骤,我揣著相機(jī)與錄音漆羔,去河邊找鬼。 笑死狱掂,一個胖子當(dāng)著我的面吹牛钧椰,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播符欠,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼瓶埋!你這毒婦竟也來了希柿?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤养筒,失蹤者是張志新(化名)和其女友劉穎曾撤,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體晕粪,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡挤悉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了巫湘。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片装悲。...
    茶點(diǎn)故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡昏鹃,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出诀诊,到底是詐尸還是另有隱情洞渤,我是刑警寧澤,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布属瓣,位于F島的核電站载迄,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏抡蛙。R本人自食惡果不足惜护昧,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望粗截。 院中可真熱鬧惋耙,春花似錦、人聲如沸慈格。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽浴捆。三九已至蒜田,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間选泻,已是汗流浹背冲粤。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留页眯,地道東北人梯捕。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像窝撵,于是被迫代替她去往敵國和親傀顾。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,877評論 2 345

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