單細(xì)胞之軌跡分析-1:RNA velocity

RNA velocity原理此前已經(jīng)介紹過,參考單細(xì)胞測序的軌跡推斷

1. loom文件準(zhǔn)備

由于RNA velocity分析的前提是要我們從單細(xì)胞RNA-seq的數(shù)據(jù)中區(qū)分出未成熟的mRNA(unspliced)和成熟的mRNA(spliced),所以需要從fastq文件開始,與基因組進(jìn)行比對后得到sam文件,從sam文件轉(zhuǎn)成bam文件,再從bam文件中提取spliced,unspliced和ambiguous信息。得到.loom為后綴的文件。
(loom是scanpy常用的保存單細(xì)胞數(shù)據(jù)的格式)

2. Velocyto.R的使用練習(xí)(基于PAGODA2)

本練習(xí)基于:教程
練習(xí)數(shù)據(jù)下載:SCG71.loom

The example below starts with a loom file produced by velocyto.py, uses pagoda2 to obtain cell clusters/embedding, and then estimate/visualize velocity.

1.加載數(shù)據(jù)

library(velocyto.R)
input_loom <- "SCG71.loom"
ldat <- read.loom.matrices(input_loom)
View(ldat)
loom文件是一個包含了spliced(不包含內(nèi)含子),unspliced(包含內(nèi)含子)和ambiguous(在分析中不會被使用)這三個elements的list。可以看到這個數(shù)據(jù)集包含24421個基因和6667個細(xì)胞

2. 準(zhǔn)備pagoda2的輸入數(shù)據(jù)

#使用剪切位點(diǎn)的表達(dá)量作為pagoda2的輸入
emat <- ldat$spliced
hist(log10(colSums(emat)),col='wheat',xlab='cell size') #做直方圖查看數(shù)據(jù)分布
colSums(emat)是每個細(xì)胞出現(xiàn)了剪切事件的基因數(shù)之和,這個圖是出現(xiàn)不同剪切事件的細(xì)胞分布。
emat <- emat[,colSums(emat)>=1e3] 
#對數(shù)據(jù)進(jìn)行過濾,濾掉剪切事件在1000以下的細(xì)胞,也就是上圖中橫軸小于3的細(xì)胞被濾掉了
#如果過濾了可以不進(jìn)行
dim(emat)
# [1] 24421  2600
# 原先的6667個細(xì)胞只剩下2600個了

3. 使用Pagoda2 processing(標(biāo)準(zhǔn)化和細(xì)胞聚類)

PAGODA(pathway and gene set overdispersion analysis)是一個分析單細(xì)胞測序的方法,主要特點(diǎn)是在已知的重要信號通路基礎(chǔ)上對細(xì)胞進(jìn)行分類,以提高統(tǒng)計效力并揭示可能的功能性解釋。pagoda2可以用來進(jìn)行細(xì)胞聚類,生成細(xì)胞-細(xì)胞距離矩陣等(其他軟件如Seurat2也可以進(jìn)行同樣的操作)。
由于RNA速率分析velocyto.R是基于pagoda的cluster和tsne,因此有必要學(xué)一下pagoda。

PAGODA的Nature Methods原文鏈接:characterizing transcriptional heterogeneity through pathway and gene set overdispersion analysis

3.1 讀入數(shù)據(jù),構(gòu)建pagoda對象并進(jìn)行標(biāo)準(zhǔn)化

library(pagoda2) # 導(dǎo)入pagoda2包
# 構(gòu)建Pagoda2對象
r <- Pagoda2$new(emat,modelType='plain',trim=10,log.scale=T) 

3.2 對表達(dá)量差異很大的基因?qū)ο掠畏治鏊急戎剡M(jìn)行調(diào)整

r$adjustVariance(plot=T,do.par=T,gam.k=10)

3.3 對細(xì)胞進(jìn)行降維聚類和細(xì)胞嵌合分析tsne

r$calculatePcaReduction(nPcs=100,n.odgenes=3e3,maxit=300)
r$makeKnnGraph(k=30,type='PCA',center=T,distance='cosine')
r$getKnnClusters(method=multilevel.community,type='PCA',name='multilevel')
r$getEmbedding(type='PCA',embeddingType='tSNE',perplexity=50,verbose=T)

聚類結(jié)果可視化

par(mfrow=c(1,2))
r$plotEmbedding(type='PCA',embeddingType='tSNE',show.legend=F,mark.clusters=T,min.group.size=10,shuffle.colors=F,mark.cluster.cex=1,alpha=0.3,main='cell clusters')
r$plotEmbedding(type='PCA',embeddingType='tSNE',colors=r$depth,main='depth') 
 #不能繪制標(biāo)題,也不能設(shè)置mfrow是為什么?

在tsne圖的基礎(chǔ)上觀察某些特異基因的表達(dá)情況

gene <-"Ccr2"
r$plotEmbedding(type='PCA',embeddingType='tSNE',colors=r$counts[,gene],shuffle.colors=F,mark.cluster.cex=1,alpha=0.8,main=gene)

計算每個cluster的差異基因并可視化,比如畫出cluster2中高表達(dá)基因的熱圖

r$getDifferentialGenes(type='PCA',verbose=T)
de=r$diffgenes$PCA$multilevel$`2`
r$plotGeneHeatmap(genes=rownames(de)[1:15],groups=r$clusters$PCA[[1]])

4. 速率估計

準(zhǔn)備矩陣和聚類數(shù)據(jù)

emat <- ldat$spliced
nmat <- ldat$unspliced #忽略跨剪切位點(diǎn)的數(shù)據(jù)(數(shù)目太少)
#通過p2對細(xì)胞進(jìn)行過濾
emat <- emat[,rownames(r$counts)]
nmat <- nmat[,rownames(r$counts)]
#對分類數(shù)據(jù)進(jìn)行標(biāo)記
cluster.label <- r$clusters$PCA$multilevel # take the cluster factor that was calculated by p2
library(sccore)
cell.colors <- fac2col(cluster.label)
# take embedding form p2
emb <- r$embeddings$PCA$tSNE

計算細(xì)胞間的距離(除了聚類和tSNE嵌合,在p2(pagoda2)過程中也可以得到一個細(xì)胞細(xì)胞距離矩陣,而這個矩陣比velocyto.R中通常使用的全轉(zhuǎn)錄組相關(guān)距離矩陣要好。

cell.dist <- as.dist(1-armaCor(t(r$reductions$PCA)))

基于最小平均表達(dá)量篩選基因(至少在一個簇中),輸出產(chǎn)生的有效基因數(shù)

emat <- filter.genes.by.cluster.expression(emat,cluster.label,min.max.cluster.average = 0.2)
nmat <- filter.genes.by.cluster.expression(nmat,cluster.label,min.max.cluster.average = 0.05)
length(intersect(rownames(emat),rownames(nmat)))

計算RNA速率(using gene-relative model with k=20 cell kNN pooling and using top/bottom 2% quantiles for gamma fit)

fit.quantile <- 0.02
rvel.cd <- gene.relative.velocity.estimates(emat,nmat,deltaT=1,kCells=25,cell.dist=cell.dist,fit.quantile=fit.quantile)

在tsne上可視化RNA速率結(jié)果

show.velocity.on.embedding.cor(emb,rvel.cd,n=200,scale='sqrt',cell.colors=ac(cell.colors,alpha=0.5),cex=0.8,arrow.scale=3,show.grid.flow=TRUE,min.grid.cell.mass=0.5,grid.n=40,arrow.lwd=1,do.par=F,cell.border.alpha = 0.1)

可視化特定的基因

gene <- "Camp"
gene.relative.velocity.estimates(emat,nmat,deltaT=1,kCells = 25,kGenes=1,fit.quantile=fit.quantile,cell.emb=emb,cell.colors=cell.colors,cell.dist=cell.dist,show.gene=gene,old.fit=rvel.cd,do.par=T)

增加k的數(shù)目

gene <- "Camp"
gene.relative.velocity.estimates(emat,nmat,deltaT=1,kCells = 100,kGenes=1,fit.quantile=fit.quantile,cell.emb=emb,cell.colors=cell.colors,cell.dist=cell.dist,show.gene=gene,do.par=T)

參考:http://pklab.med.harvard.edu/velocyto/notebooks/R/SCG71.nb.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,117評論 6 537
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,860評論 3 423
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,128評論 0 381
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,291評論 1 315
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,025評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,421評論 1 324
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,477評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,642評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,177評論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,970評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,157評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,717評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,410評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,821評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,053評論 1 289
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,896評論 3 395
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,157評論 2 375

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