Hemberg-lab单细胞转录组数据分析(九)- Scater包单细胞过滤
往期系列
Hemberg-lab單細胞轉錄組數據分析(一)
Hemberg-lab單細胞轉錄組數據分析(二)
Hemberg-lab單細胞轉錄組數據分析(三)
Hemberg-lab單細胞轉錄組數據分析(四)
Hemberg-lab單細胞轉錄組數據分析(五)
Hemberg-lab單細胞轉錄組數據分析(六)
Hemberg-lab單細胞轉錄組數據分析(七)-導入10X和SmartSeq2數據Tabula Muris
Hemberg-lab單細胞轉錄組數據分析(八)- Scater包輸入導入和存儲
收藏|北大生信平臺"單細胞分析、染色質分析"視頻和PPT分享
該如何自學入門生物信息學
生物信息之程序學習
收藏|你想要的生信學習系列教程-寶典在手,生信無憂
細胞質控
文庫大小
查看每個樣品(細胞)檢測到的總分子數 (UMI count)或總reads數 (reads count),擁有很少的reads或分子數的樣品可能是細胞破損或捕獲失敗,應該移除。
hist(umi$total_counts,breaks = 100 ) abline(v = 25000, col = "red")練習:
我們的過濾移除了多少細胞?
每個細胞中檢測到的分子數的分布預期是怎樣的?
答案
filter_by_total_counts <- (umi$total_counts > 25000) table(filter_by_total_counts) ## filter_by_total_counts ## FALSE TRUE ## 46 818檢測到的基因數
除了確保每個樣品的測序深度,也需要保證測序reads在轉錄本中分布均衡,而不是集中在少數高表達的基因上。每個樣品檢測到的基因數也是衡量樣品質量好壞的一個標準。
# 原文這個地方有誤,可能是版本問題 hist(umi$total_features_by_counts,breaks = 100 ) abline(v = 7000, col = "red")從圖中可以看出,大部分細胞能檢測到7,000-10,000基因,這對高深度scRNA-seq是正常的。當然這個受測序深度和實驗方法的影響。比如居于droplet的方法或樣品測序深度低時每個細胞檢測到的基因數要少一些,表現在圖上是,左側拖尾嚴重。如果細胞之間的基因檢出率相當,應該符合正態分布。因此選擇移除分布尾部的細胞 (本例中是檢測出的基因數少于7000的細胞)。
練習2: 移除了多少細胞?
答案
## filter_by_expr_features ## FALSE TRUE ## 116 748ERCCs和MTs
另外一個測量細胞質量的方式是比較ERCC spike-in測到的reads數與內源轉錄本測到的reads數的比例,可以衡量捕獲到的內源性RNA的總量。如果spike in的reads數很高,則表示起始內源性RNA總量低,可能是由于細胞死亡或脅迫誘導的RNA降解導致的,也有可能是細胞體積小。
plotColData( umi, x = "total_features_by_counts", y = "pct_counts_MT", colour = "batch") plotColData(umi,x = "total_features_by_counts",y = "pct_counts_MT",colour = "batch" )上圖顯示來源于NA19098.r2批次的細胞有較高的ERCC/內源RNA比例。作者在文章中證實這一點,說這個批次的細胞體積小。
練習 3:移除NA19098.r2批次的細胞和線粒體基因表達量超過10%的細胞。
答案
filter_by_ERCC <- umi$batch != "NA19098.r2" table(filter_by_ERCC) ## filter_by_ERCC ## FALSE TRUE ## 96 768 filter_by_MT <- umi$pct_counts_MT < 10 table(filter_by_MT) ## filter_by_MT ## FALSE TRUE ## 31 833練習 4: 如果研究的數據集細胞大小不同(正常細胞、衰老細胞),那么ERCC與內源基因被測到的比例會是怎么的分布?
答案:小的細胞 (normal)比大的細胞(senescent,衰老)有更高比例的ERCC reads。
細胞過濾
手動過濾
基于前面的分析定義一個過濾器,不滿足任何一個條件的細胞都過濾掉:
umi$use <- (# sufficient features (genes)filter_by_expr_features &# sufficient molecules countedfilter_by_total_counts &# sufficient endogenous RNAfilter_by_ERCC &# remove cells with unusual number of reads in MT genesfilter_by_MT ) table(umi$use) ## ## FALSE TRUE ## 207 657自動過濾
scater提供了一個根據質控數據進行PCA分析進而自動挑出異常細胞的方法。默認,下面這些統計量將用于PCA異常細胞檢測的分析:
-
pct_counts_top_100_features
-
total_features_by_counts
-
pct_counts_feature_controls
-
n_detected_feature_controls
-
log10_counts_endogenous_features
-
log10_counts_feature_controls
scater首先生成一個行是細胞,列是細胞中對應的上述質控數據的值,然后使用mvoutlier包篩選質控數據與大部分細胞不同的樣品定義為低質量細胞。 package on the QC metrics for all cells. This will identify cells that have substantially different QC metrics from the others, possibly corresponding to low-quality cells. We can visualize any outliers using a principal components plot as shown below:
umi <- runPCA(umi, use_coldata = TRUE, detect_outliers = TRUE) reducedDimNames(umi) ## [1] "PCA_coldata"鑒定結果存儲于umi變量的$outlier部分,指示細胞是否被判斷未異常細胞。自動異常細胞檢測是很有意義的,可以作為工廠化大批量模式使用,但特異性的手動檢測數據集和根據結果、實驗調整過濾是推薦的方式。
table(umi$outlier)## ## FALSE TRUE ## 791 73繪制PCA結果展示異常細胞分布:
plotReducedDim(umi, use_dimred = "PCA_coldata",size_by = "total_features_by_counts", shape_by = "use", colour_by="outlier")手動過濾和自動過濾比較
練習 5: 繪制Venn圖比較自動和手動兩個方式檢測出的異常細胞
提示: 使用limma包里的vennCounts和vennDiagram函數繪制。生信寶典說,使用高顏值在線繪圖工具http://www.ehbio.com/ImageGP更方便。
答案
還有一種方式是使用中位數絕對偏差作為判斷樣品異常的標準。以測序文庫大小為例,假設樣品中的Total read count是,所有樣品中Total read count的中位數是,那么樣品 Total read count的絕對偏差就是。 的樣品會被移除 (移除測序深度低的樣品)。為了增強過濾的魯棒性,依據樣品測序的文庫大小和檢測到的基因數目過濾時會先對相應對數值進行對數轉換。依據ERCC spike-in基因的比例和線粒體基因的比例過濾時,的樣品會被移除 (移除檢測到的內源基因少的樣品)。
總結
以上是生活随笔為你收集整理的Hemberg-lab单细胞转录组数据分析(九)- Scater包单细胞过滤的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 送你一个在线机器学习网站,真香!
- 下一篇: 干货集锦:200+生信范文、30+款软件