10xGenomics單細胞轉(zhuǎn)錄seurat包提取表達量畫小提琴圖

10xGenomics單細胞轉(zhuǎn)錄seurat包提取表達量畫小提琴圖


  • 需求
  • 提取表達
  • 畫小提琴圖
  • 對噪音處理

需求

其實seurat包已經(jīng)有畫小提琴圖的函數(shù)恬惯,VlnPlot,參數(shù)也較多,基本上可以滿足需求家破,但是如果需要對其x韭寸、y軸的文字以及大小調(diào)整,可以直接添加其他的ggplot的命名喷楣,比如命令如下:

p<-VlnPlot(object = newname.immune.combined, features.plot = as.character(gene), return.plotlist=TRUE,point.size.use = -1,cols.use=color,size.x.use = -1,do.sort = F)
p<-p+labs(x='Clusters', y= 'Gene Expresion')
p<-p+theme(panel.grid=element_blank(), legend.background = element_rect(colour = NA),
        legend.title = element_blank(),legend.text = element_text(face="plain", color="black",size = 20),
        axis.text.x = element_text(color="black",size=15),
        axis.text.y = element_text(color="black",size=15),
        axis.title.x = element_text(face="plain", color="black",size=20),
        axis.title.y = element_text(face="plain", color="black",size=20))
  • [x] 參數(shù): size.x.use = -1
  • [x] 參數(shù): immune.combined為seurat對象
  • [x] 參數(shù): features.plot趟大,為基因名稱
  • [x] 參數(shù): cols.use為調(diào)整小提琴的顏色
  • [x] 參數(shù): labs添加坐標軸或者title名字,與普通的ggplot中的一樣

正常情況下铣焊,這樣基本上滿足需求逊朽,但是之前有個特殊的項目,將項目中的聚類名字修改了曲伊,改變順序惋耙,然后畫出來的圖順序不對(如下圖),因此需要調(diào)整順序熊昌。


順序不對的小提琴圖

但是VlnPlot函數(shù)中沒有找到相關(guān)參數(shù)绽榛,幸虧seurat包功能比較全,那我就提取表達量數(shù)據(jù)婿屹,自己作圖就ok了灭美。

提取表達量

seurat提取表達量函數(shù)為:FetchData,提取命令也很簡單:

exprs <- data.frame(FetchData(object = immune.combined, vars.all = gene))
  • [x] 參數(shù): object昂利,為seurat分析對象
  • [x] 參數(shù): vars.all届腐,提取數(shù)據(jù)的名稱铁坎,可以是向量,比如:c("tSNE_1","tSNE_2", 基因名稱)
  • [x] 參數(shù): cells.use犁苏,提取數(shù)據(jù)的細胞barcode硬萍,這里不用
    提取表達結(jié)果如下圖:


    初始表達量結(jié)果

    這里提取的數(shù)據(jù)只有barcode和表達量,沒有聚類信息围详,因此需要增加聚類信息:

exprs$Barcod<-rownames(exprs)
ident<-data.frame()
#barcode與聚類信息提取
ident<-data.frame(Barcod=names(newname.immune.combined@ident),orig.ident=newname.immune.combined@ident)
#通過merge函數(shù)朴乖,將表達量與聚類號對應(yīng)起來
c<-merge(exprs,ident,by='Barcod')
#對其進行排序
c$orig.ident<-factor(c$orig.ident,levels=c(sort(unique(immune.combined@ident))))

最終得到如下表達量矩陣:


有聚類信息的表達量矩陣

得到上述表達矩陣,開始畫小提琴圖:

ggplot(data = c,mapping = aes(x = factor(x = orig.ident),y = c[,2])) +geom_violin(scale = "width",adjust =1,trim = TRUE,mapping = aes(fill = factor(x = orig.ident)))+labs(x='Clusters', y= 'Gene Expresion',title=costmer_gene[m])+scale_colour_manual(values=mycolo)+theme(legend.position = 'none')+theme(panel.grid=element_blank(), legend.background = element_rect(colour = NA),
        legend.title = element_blank(),legend.text = element_text(face="plain", color="black",size = 20),
        axis.text.x = element_text(color="black",size=20),
        axis.text.y = element_text(color="black",size=20),
        axis.title.x = element_text(face="plain", color="black",size=20),
        axis.title.y = element_text(face="plain", color="black",size=20))
ggsave('test.pdf')

錯誤的小提琴圖
開始按照普通的畫小提琴進行小提琴繪制:

ggplot(data,aes(x=factor(orig.ident),y=Cdh17,fill=orig.ident))+geom_violin(alpha=0.8,width=1)
ggsave('test.pdf')

得到如下圖小提琴圖助赞,可以看到數(shù)據(jù)分別有明顯從錯誤买羞。


錯誤1小提琴圖

正確的小提琴圖
通過修改小提琴圖畫法,找到正確的小提琴圖命名:

ggplot(data = data,mapping = aes(x = factor(x = orig.ident),y = Cdh17)) +geom_violin(scale = "width",adjust =1,trim = TRUE,mapping = aes(fill = factor(x = orig.ident)))
ggsave('test.pdf')

得到如下小提琴圖:


小提琴圖

從圖中可以看出雹食,數(shù)據(jù)分布基本正常畜普,聚類10的表達量明顯高于其他聚類,但是與我們直接用VlnPlot函數(shù)畫圖出來的圖還是不一樣群叶,除了聚類10以外吃挑,其他表達量也較高。

最終正確小提琴圖

通過查看seurat官網(wǎng)在GitHub上面的SingleVlnPlot源代碼街立,然后發(fā)現(xiàn)其他官方對其有一個噪音處理過程儒鹿,這是與VlnPlot畫出來不一樣的原因,然后我們也加上噪音處理几晤,可以得到與VlnPlot一樣的圖约炎。(VlnPlot函數(shù)是調(diào)用SingleVlnPlot畫圖)

noise <- rnorm(n = length(x = data[,c('Cdh17')])) / 100000
data[,c('Cdh17')] <- data[, c('Cdh17')] + noise
ggplot(data = data,mapping = aes(x = factor(x = orig.ident),y = Cdh17)) +geom_violin(scale = "width",adjust =1,trim = TRUE,mapping = aes(fill = factor(x = orig.ident))) 
ggsave('test.pdf')

得到與VlnPlot的幾乎一致的圖:


最終與官方一致的小提琴圖

,至于顏色蟹瘾,legend都可以通過ggplot2畫圖圖層修改圾浅。

到此,畫小提琴圖終于完成了憾朴。

2019年3月27日

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末狸捕,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子众雷,更是在濱河造成了極大的恐慌灸拍,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,682評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件砾省,死亡現(xiàn)場離奇詭異鸡岗,居然都是意外死亡,警方通過查閱死者的電腦和手機编兄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評論 3 395
  • 文/潘曉璐 我一進店門轩性,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人狠鸳,你說我怎么就攤上這事揣苏∶跎ぃ” “怎么了?”我有些...
    開封第一講書人閱讀 165,083評論 0 355
  • 文/不壞的土叔 我叫張陵卸察,是天一觀的道長脯厨。 經(jīng)常有香客問我,道長坑质,這世上最難降的妖魔是什么合武? 我笑而不...
    開封第一講書人閱讀 58,763評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮洪乍,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘夜焦。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 67,785評論 6 392
  • 文/花漫 我一把揭開白布妈踊。 她就那樣靜靜地躺著瓷炮,像睡著了一般。 火紅的嫁衣襯著肌膚如雪卸伞。 梳的紋絲不亂的頭發(fā)上抹镊,一...
    開封第一講書人閱讀 51,624評論 1 305
  • 那天,我揣著相機與錄音荤傲,去河邊找鬼垮耳。 笑死,一個胖子當著我的面吹牛遂黍,可吹牛的內(nèi)容都是我干的终佛。 我是一名探鬼主播,決...
    沈念sama閱讀 40,358評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼雾家,長吁一口氣:“原來是場噩夢啊……” “哼铃彰!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起芯咧,我...
    開封第一講書人閱讀 39,261評論 0 276
  • 序言:老撾萬榮一對情侶失蹤牙捉,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后敬飒,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體邪铲,經(jīng)...
    沈念sama閱讀 45,722評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年无拗,在試婚紗的時候發(fā)現(xiàn)自己被綠了霜浴。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,030評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡蓝纲,死狀恐怖阴孟,靈堂內(nèi)的尸體忽然破棺而出晌纫,到底是詐尸還是另有隱情,我是刑警寧澤永丝,帶...
    沈念sama閱讀 35,737評論 5 346
  • 正文 年R本政府宣布锹漱,位于F島的核電站,受9級特大地震影響慕嚷,放射性物質(zhì)發(fā)生泄漏哥牍。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,360評論 3 330
  • 文/蒙蒙 一喝检、第九天 我趴在偏房一處隱蔽的房頂上張望嗅辣。 院中可真熱鬧,春花似錦挠说、人聲如沸澡谭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蛙奖。三九已至,卻和暖如春杆兵,著一層夾襖步出監(jiān)牢的瞬間雁仲,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評論 1 270
  • 我被黑心中介騙來泰國打工琐脏, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留攒砖,地道東北人。 一個月前我還...
    沈念sama閱讀 48,237評論 3 371
  • 正文 我出身青樓日裙,卻偏偏與公主長得像祭衩,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子阅签,可洞房花燭夜當晚...
    茶點故事閱讀 44,976評論 2 355