單細胞之軌跡分析-1:RNA velocity

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

1. loom文件準備

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

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

本練習基于:教程
練習數(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個細胞

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

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

3. 使用Pagoda2 processing(標準化和細胞聚類)

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

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

3.1 讀入數(shù)據(jù),構(gòu)建pagoda對象并進行標準化

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

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

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

3.3 對細胞進行降維聚類和細胞嵌合分析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') 
 #不能繪制標題矢渊,也不能設(shè)置mfrow是為什么检眯?

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

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中高表達基因的熱圖

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. 速率估計

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

emat <- ldat$spliced
nmat <- ldat$unspliced #忽略跨剪切位點的數(shù)據(jù)(數(shù)目太少)
#通過p2對細胞進行過濾
emat <- emat[,rownames(r$counts)]
nmat <- nmat[,rownames(r$counts)]
#對分類數(shù)據(jù)進行標記
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

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

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

基于最小平均表達量篩選基因(至少在一個簇中)昂灵,輸出產(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)系作者
禁止轉(zhuǎn)載避凝,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者。
  • 序言:七十年代末眨补,一起剝皮案震驚了整個濱河市管削,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌撑螺,老刑警劉巖含思,帶你破解...
    沈念sama閱讀 206,013評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡含潘,警方通過查閱死者的電腦和手機饲做,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,205評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來遏弱,“玉大人盆均,你說我怎么就攤上這事∈荩” “怎么了泪姨?”我有些...
    開封第一講書人閱讀 152,370評論 0 342
  • 文/不壞的土叔 我叫張陵健田,是天一觀的道長悍缠。 經(jīng)常有香客問我,道長髓抑,這世上最難降的妖魔是什么袋坑? 我笑而不...
    開封第一講書人閱讀 55,168評論 1 278
  • 正文 為了忘掉前任唇敞,我火速辦了婚禮,結(jié)果婚禮上咒彤,老公的妹妹穿的比我還像新娘疆柔。我一直安慰自己,他們只是感情好镶柱,可當我...
    茶點故事閱讀 64,153評論 5 371
  • 文/花漫 我一把揭開白布旷档。 她就那樣靜靜地躺著,像睡著了一般歇拆。 火紅的嫁衣襯著肌膚如雪鞋屈。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,954評論 1 283
  • 那天故觅,我揣著相機與錄音厂庇,去河邊找鬼。 笑死输吏,一個胖子當著我的面吹牛权旷,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播贯溅,決...
    沈念sama閱讀 38,271評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼拄氯,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了它浅?” 一聲冷哼從身側(cè)響起译柏,我...
    開封第一講書人閱讀 36,916評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎姐霍,沒想到半個月后鄙麦,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體典唇,經(jīng)...
    沈念sama閱讀 43,382評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,877評論 2 323
  • 正文 我和宋清朗相戀三年胯府,在試婚紗的時候發(fā)現(xiàn)自己被綠了介衔。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 37,989評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡盟劫,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出与纽,到底是詐尸還是另有隱情侣签,我是刑警寧澤,帶...
    沈念sama閱讀 33,624評論 4 322
  • 正文 年R本政府宣布急迂,位于F島的核電站影所,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏僚碎。R本人自食惡果不足惜猴娩,卻給世界環(huán)境...
    茶點故事閱讀 39,209評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望勺阐。 院中可真熱鬧卷中,春花似錦、人聲如沸渊抽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,199評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽懒闷。三九已至十减,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間愤估,已是汗流浹背帮辟。 一陣腳步聲響...
    開封第一講書人閱讀 31,418評論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留玩焰,地道東北人由驹。 一個月前我還...
    沈念sama閱讀 45,401評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像昔园,于是被迫代替她去往敵國和親荔棉。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,700評論 2 345

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