前言
EcoTyper是一個基于機器學習的工具,能夠從Bulk鹤树、單細胞击费、以及空間分辨率的基因表達數(shù)據(jù)中大規(guī)模地識別并驗證細胞狀態(tài)和生態(tài)型俏让。我們在前面的推文中介紹了EcoTyper的分析框架和部分實操至扰,感興趣的小伙伴可以先閱讀這一部分哦鳍徽。
EcoTyper的代碼實操主要分為6個部分:
那么,今天讓我們一起來學習一下它的第五個部分——De novo Discovery of Cell States and Ecotypes in scRNA-seq Data敢课。
EcoTyper的分析框架:
Extract cell type specific or top variable genes:在分析前旬盯,通常需要去除不特定于某一細胞類型的基因(在給定細胞類型和所有其他細胞類型之間差異表達的基因作為特異基因),以減少發(fā)現(xiàn)假細胞狀態(tài)的可能性翎猛。然后胖翰,通過Wilcox檢驗和Benjamini-Hochberg校正來篩除Q值大于0.05的基因。
Cell state discovery on correlation matrices:EcoTyper 使用非負矩陣分解(NMF)來從單細胞表達數(shù)據(jù)中鑒定細胞狀態(tài)切厘。然而萨咳,由于scRNA-seq數(shù)據(jù)通常是稀疏的,直接應(yīng)用NMF可能效果不佳疫稿。因此培他,EcoTyper 在給定細胞類型的每對細胞之間的相關(guān)矩陣上應(yīng)用NMF。
Choosing the number of cell states:基于cophenetic系數(shù)確定細胞狀態(tài)遗座。cophenetic系數(shù)量化了給定細胞狀態(tài)數(shù)量(或聚類數(shù))的分類穩(wěn)定性舀凛,通常在0到1之間,1表示最穩(wěn)定途蒋。
Extracting cell state information:從步驟2的NMF輸出中提取細胞狀態(tài)信息猛遍。
Cell state re-discovery on expression matrices:在步驟2中確定了細胞狀態(tài)后,EcoTyper進行差異表達分析号坡,以鑒定與每個細胞狀態(tài)高度相關(guān)的基因懊烤。然后,選取具有前1000個基因進行新一輪的NMF宽堆。
Extracting cell state information:解析第5步NMF結(jié)果腌紧,提取細胞狀態(tài)信息用于后續(xù)分析。
Cell state QC filter:為了避免假細胞狀態(tài)的識別畜隶,EcoTyper引入了自適應(yīng)假陽指數(shù)(AFI)來過濾具有AFI >= 1的細胞狀態(tài)壁肋。
Ecotype (cellular community) discovery:生態(tài)型或細胞社群是通過識別細胞狀態(tài)在樣本之間的共現(xiàn)模式來獲得的。EcoTyper使用Jaccard系數(shù)來量化每對細胞狀態(tài)在發(fā)現(xiàn)隊列中樣本之間的重疊程度籽慢。然后浸遗,根據(jù)Jaccard矩陣,通過超幾何檢驗評估是否存在細胞狀態(tài)之間的重疊嗡综。最后乙帮,通過層次聚類和輪廓寬度來確定最佳的生態(tài)型數(shù)量。
代碼流程
1.準備環(huán)境和數(shù)據(jù)
下載 EcoTyper
wget https://github.com/digitalcytometry/ecotyper/archive/refs/heads/master.zip
unzip master.zip
cd ecotyper-master
#EcoTyper是一個獨立的軟件极景,用R實現(xiàn)察净,但并不是R包哦驾茴。
R環(huán)境準備:
這是官網(wǎng)推薦的R和R包版本,但是小編用的最新的R版本氢卡,并且安裝相應(yīng)最新版本的R包也是很順利的锈至。
install.packages(c("RColorBrewer","cluster", "circlize","cowplot","data.table","doParallel","ggplot2","grid", "reshape2", "viridis","config","argparse","colorspace", "plyr"))
BiocManager::install("ComplexHeatmap")
BiocManager::install("Biobase")
BiocManager::install("NMF")
輸入數(shù)據(jù):
- 表達譜數(shù)據(jù):結(jié)直腸癌scRNA-seq數(shù)據(jù),數(shù)據(jù)存儲在
example_data/scRNA_CRC_data.txt
中译秦。
- 樣本注釋文件峡捡,數(shù)據(jù)存儲在
example_data/scRNA_CRC_annotation.txt
。
2.discovery scripts
EcoTyper_discovery_scRNA.R
腳本用于在單細胞轉(zhuǎn)錄組數(shù)據(jù)中恢復(fù)細胞狀態(tài)和生態(tài)型筑悴。
Rscript EcoTyper_discovery_scRNA.R -h
此腳本接受 YAML 格式的配置文件作為輸入文件(config_discovery_scRNA.yml)们拙。
參數(shù)詳解:
-
Discovery dataset name : "discovery_scRNA_CRC"
發(fā)現(xiàn)數(shù)據(jù)集名稱
-
Expression matrix : "example_data/scRNA_CRC_data.txt"
表達數(shù)據(jù)的文件路徑
-
Annotation file : "example_data/scRNA_CRC_annotation.txt"
注釋數(shù)據(jù)的文件路徑
-
Annotation file column to scale by : NULL
指定一個注釋文件中的列名,按照這個列的值阁吝,對基因進行縮放(均值為0砚婆,方差為1)
-
Annotation file column(s) to plot : []
指定注釋文件中哪些列將用作輸出熱圖中的顏色條(color bar)
Annotation file column(s) to plot : ["Histology", "Tissue"]
Output folder : "DiscoveryOutput_scRNA"
-
Filter genes : "cell type specific"
Accepted values:
"cell type specific" - select genes overexpressed in a cell type
"no filter" - use all genes
-
Number of threads : 10
線程數(shù)
-
Number of NMF restarts : 5
NMF重新啟動次數(shù)參數(shù)。EcoTyper 使用NMF(非負矩陣分解)來鑒定細胞狀態(tài)突勇,但NMF的結(jié)果可能取決于隨機初始化装盯。為了獲得穩(wěn)定的解決方案,NMF通常多次運行甲馋,每次使用不同的種子埂奈。
-
Maximum number of states per cell type : 20
每種細胞類型可能的狀態(tài)數(shù)量的上限。
-
Cophenetic coefficient cutoff : 0.95
取值范圍為[0,1]定躏,較低的值會得到較多的細胞狀態(tài)數(shù)量账磺。
-
Jaccard matrix p-value cutoff : 1
在步驟8中,生態(tài)型的識別是通過對衡量每對狀態(tài)之間的樣本重疊的Jaccard矩陣進行聚類來完成的共屈。在執(zhí)行生態(tài)型識別之前绑谣,將不顯著的樣本重疊的Jaccard矩陣值設(shè)置為0,以減輕由虛假重疊引入的噪音拗引。值得注意的是,在具有較小樣本數(shù)量的scRNA-seq數(shù)據(jù)集中幌衣,建議禁用此篩選以避免過度篩選Jaccard矩陣矾削,但如果發(fā)現(xiàn)的scRNA-seq數(shù)據(jù)集包含足夠多的樣本來可靠評估重疊的顯著性,可以將此截斷值設(shè)置為較低的值(例如0.05)豁护。
-
Minimum number of states in ecotypes : 3
少于3種細胞狀態(tài)的生態(tài)型被過濾掉
運行腳本:
Rscript EcoTyper_discovery_scRNA.R -c config_discovery_scRNA.yml
3.結(jié)果解讀
輸出的結(jié)果包括3類哼凯,rank_plot圖、各種細胞類型的細胞狀態(tài)以及生態(tài)型楚里。我們來逐各學習断部。
- rank_plot(Cophenetic系數(shù)圖):橫向虛線表示配置文件中提供的Cophenetic系數(shù)截斷值(Cophenetic coefficient cutoff field)。紅色的垂直虛線表示基于提供的Cophenetic系數(shù)截斷值自動選擇的狀態(tài)數(shù)量班缎。注意這些圖表示在應(yīng)用步驟6和7中的低質(zhì)量狀態(tài)篩選之前獲得的狀態(tài)數(shù)量蝴光。因此最終結(jié)果可能包含更少的狀態(tài)她渴。
接下來,我們以內(nèi)皮細胞為例展示ecotyper識別的細胞狀態(tài)結(jié)果
- state_assignment.txt:每個樣本被分配到具有最高推斷豐度的細胞狀態(tài)的信息蔑祟,也就是每個樣本的主要細胞狀態(tài)趁耗。
- state_assignment_heatmap.png/pdf:展示在每個細胞狀態(tài)中具有最高 log2 FC的基因的表達情況,這些基因被稱為細胞狀態(tài)特異性標記基因疆虚。列代表發(fā)現(xiàn)數(shù)據(jù)集中的樣本苛败,而行代表了每個細胞狀態(tài)的標記基因。
- "heatmap_top_ann.txt" 是用戶提供的注釋文件與細胞狀態(tài)相關(guān)的信息的整合径簿。只有被分配到主要細胞狀態(tài)的樣本才會包含在這個文件中罢屈。
生態(tài)型部分輸出的結(jié)果
- "ecotype_abundance.txt" 文件包含了在發(fā)現(xiàn)數(shù)據(jù)集中的每個生態(tài)型(ecotype)相對豐度的信息篇亭。
- "ecotype_assignment.txt" 文件包含了將發(fā)現(xiàn)數(shù)據(jù)集中的樣本分配到各個生態(tài)型的信息儡遮。
- "heatmap_assigned_samples_viridis.pdf/png" 展示了分配了生態(tài)型的樣本中細胞狀態(tài)分數(shù)的熱圖暗赶。
- nclusters_jaccard.png/pdf: "initial clusters" 指的是通過對Jaccard指數(shù)矩陣進行聚類獲得的初始簇的數(shù)量。這個數(shù)量通常是通過應(yīng)用平均輪廓(average silhouette)方法來選擇的蹂随。
- jaccard_matrix.png/pdf:包含至少3個細胞狀態(tài)的生態(tài)型的Jaccard系數(shù)矩陣的熱圖十嘿。
小結(jié)
在本期推文中岳锁,我們介紹了如何使用EcoTyper從單細胞轉(zhuǎn)錄組數(shù)據(jù)中從頭發(fā)現(xiàn)細胞狀態(tài)和生態(tài)型绩衷。小編認為激率,我們在研究的過程中可以整合較多的單細胞數(shù)據(jù)集保證更為全面地發(fā)現(xiàn)細胞狀態(tài)和生態(tài)型咳燕。隨后,將模型應(yīng)用于Bulk轉(zhuǎn)錄組數(shù)據(jù)中恢復(fù)細胞狀態(tài)和生態(tài)型乒躺,結(jié)合Bulk數(shù)據(jù)樣本量大招盲、表型數(shù)據(jù)多的優(yōu)勢更好的探索相關(guān)生物學結(jié)果。我們將在下期推文中和大家學習EcoTyper的最后一部分實操--De novo Discovery of Cell States and Ecotypes in Pre-Sorted Data曹货,關(guān)于今天的學習內(nèi)容,感興趣的小伙伴快來用起來吧~
好啦讳推,本期的分享到這里就結(jié)束了,我們下期再會~