EcoTyper代碼實(shí)操(五):在scRNA-seq數(shù)據(jù)中發(fā)現(xiàn)細(xì)胞狀態(tài)和生態(tài)型

前言

EcoTyper是一個(gè)基于機(jī)器學(xué)習(xí)的工具,能夠從Bulk、單細(xì)胞、以及空間分辨率的基因表達(dá)數(shù)據(jù)中大規(guī)模地識(shí)別并驗(yàn)證細(xì)胞狀態(tài)和生態(tài)型。我們?cè)谇懊娴耐莆闹薪榻B了EcoTyper的分析框架和部分實(shí)操,感興趣的小伙伴可以先閱讀這一部分哦。

EcoTyper的代碼實(shí)操主要分為6個(gè)部分:

image.png

那么,今天讓我們一起來(lái)學(xué)習(xí)一下它的第五個(gè)部分——De novo Discovery of Cell States and Ecotypes in scRNA-seq Data。

EcoTyper的分析框架:
Extract cell type specific or top variable genes:在分析前,通常需要去除不特定于某一細(xì)胞類型的基因(在給定細(xì)胞類型和所有其他細(xì)胞類型之間差異表達(dá)的基因作為特異基因),以減少發(fā)現(xiàn)假細(xì)胞狀態(tài)的可能性。然后,通過Wilcox檢驗(yàn)和Benjamini-Hochberg校正來(lái)篩除Q值大于0.05的基因。
Cell state discovery on correlation matrices:EcoTyper 使用非負(fù)矩陣分解(NMF)來(lái)從單細(xì)胞表達(dá)數(shù)據(jù)中鑒定細(xì)胞狀態(tài)。然而,由于scRNA-seq數(shù)據(jù)通常是稀疏的,直接應(yīng)用NMF可能效果不佳。因此,EcoTyper 在給定細(xì)胞類型的每對(duì)細(xì)胞之間的相關(guān)矩陣上應(yīng)用NMF。
Choosing the number of cell states:基于cophenetic系數(shù)確定細(xì)胞狀態(tài)。cophenetic系數(shù)量化了給定細(xì)胞狀態(tài)數(shù)量(或聚類數(shù))的分類穩(wěn)定性,通常在0到1之間,1表示最穩(wěn)定。
Extracting cell state information:從步驟2的NMF輸出中提取細(xì)胞狀態(tài)信息。
Cell state re-discovery on expression matrices:在步驟2中確定了細(xì)胞狀態(tài)后,EcoTyper進(jìn)行差異表達(dá)分析,以鑒定與每個(gè)細(xì)胞狀態(tài)高度相關(guān)的基因。然后,選取具有前1000個(gè)基因進(jìn)行新一輪的NMF。
Extracting cell state information:解析第5步NMF結(jié)果,提取細(xì)胞狀態(tài)信息用于后續(xù)分析。
Cell state QC filter:為了避免假細(xì)胞狀態(tài)的識(shí)別,EcoTyper引入了自適應(yīng)假陽(yáng)指數(shù)(AFI)來(lái)過濾具有AFI >= 1的細(xì)胞狀態(tài)。
Ecotype (cellular community) discovery:生態(tài)型或細(xì)胞社群是通過識(shí)別細(xì)胞狀態(tài)在樣本之間的共現(xiàn)模式來(lái)獲得的。EcoTyper使用Jaccard系數(shù)來(lái)量化每對(duì)細(xì)胞狀態(tài)在發(fā)現(xiàn)隊(duì)列中樣本之間的重疊程度。然后,根據(jù)Jaccard矩陣,通過超幾何檢驗(yàn)評(píng)估是否存在細(xì)胞狀態(tài)之間的重疊。最后,通過層次聚類和輪廓寬度來(lái)確定最佳的生態(tài)型數(shù)量。

代碼流程

1.準(zhǔn)備環(huán)境和數(shù)據(jù)

下載 EcoTyper
wget https://github.com/digitalcytometry/ecotyper/archive/refs/heads/master.zip
unzip master.zip
cd ecotyper-master
#EcoTyper是一個(gè)獨(dú)立的軟件,用R實(shí)現(xiàn),但并不是R包哦。
R環(huán)境準(zhǔn)備:
image.png

這是官網(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ù):
  1. 表達(dá)譜數(shù)據(jù):結(jié)直腸癌scRNA-seq數(shù)據(jù),數(shù)據(jù)存儲(chǔ)在example_data/scRNA_CRC_data.txt中。
image.png
  1. 樣本注釋文件,數(shù)據(jù)存儲(chǔ)在example_data/scRNA_CRC_annotation.txt。
image.png

2.discovery scripts

EcoTyper_discovery_scRNA.R腳本用于在單細(xì)胞轉(zhuǎn)錄組數(shù)據(jù)中恢復(fù)細(xì)胞狀態(tài)和生態(tài)型。

Rscript EcoTyper_discovery_scRNA.R -h

此腳本接受 YAML 格式的配置文件作為輸入文件(config_discovery_scRNA.yml)。

image.png
參數(shù)詳解:
  • Discovery dataset name : "discovery_scRNA_CRC"

    發(fā)現(xiàn)數(shù)據(jù)集名稱

  • Expression matrix : "example_data/scRNA_CRC_data.txt"

    表達(dá)數(shù)據(jù)的文件路徑

  • Annotation file : "example_data/scRNA_CRC_annotation.txt"

    注釋數(shù)據(jù)的文件路徑

  • Annotation file column to scale by : NULL

    指定一個(gè)注釋文件中的列名,按照這個(gè)列的值,對(duì)基因進(jìn)行縮放(均值為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重新啟動(dòng)次數(shù)參數(shù)。EcoTyper 使用NMF(非負(fù)矩陣分解)來(lái)鑒定細(xì)胞狀態(tài),但NMF的結(jié)果可能取決于隨機(jī)初始化。為了獲得穩(wěn)定的解決方案,NMF通常多次運(yùn)行,每次使用不同的種子。

  • Maximum number of states per cell type : 20

    每種細(xì)胞類型可能的狀態(tài)數(shù)量的上限。

  • Cophenetic coefficient cutoff : 0.95

    取值范圍為[0,1],較低的值會(huì)得到較多的細(xì)胞狀態(tài)數(shù)量。

  • Jaccard matrix p-value cutoff : 1

    在步驟8中,生態(tài)型的識(shí)別是通過對(duì)衡量每對(duì)狀態(tài)之間的樣本重疊的Jaccard矩陣進(jìn)行聚類來(lái)完成的。在執(zhí)行生態(tài)型識(shí)別之前,將不顯著的樣本重疊的Jaccard矩陣值設(shè)置為0,以減輕由虛假重疊引入的噪音。值得注意的是,在具有較小樣本數(shù)量的scRNA-seq數(shù)據(jù)集中,建議禁用此篩選以避免過度篩選Jaccard矩陣,但如果發(fā)現(xiàn)的scRNA-seq數(shù)據(jù)集包含足夠多的樣本來(lái)可靠評(píng)估重疊的顯著性,可以將此截?cái)嘀翟O(shè)置為較低的值(例如0.05)。

  • Minimum number of states in ecotypes : 3

    少于3種細(xì)胞狀態(tài)的生態(tài)型被過濾掉

運(yùn)行腳本:
Rscript EcoTyper_discovery_scRNA.R -c config_discovery_scRNA.yml

3.結(jié)果解讀

輸出的結(jié)果包括3類,rank_plot圖、各種細(xì)胞類型的細(xì)胞狀態(tài)以及生態(tài)型。我們來(lái)逐各學(xué)習(xí)。

  1. rank_plot(Cophenetic系數(shù)圖):橫向虛線表示配置文件中提供的Cophenetic系數(shù)截?cái)嘀担–ophenetic coefficient cutoff field)。紅色的垂直虛線表示基于提供的Cophenetic系數(shù)截?cái)嘀底詣?dòng)選擇的狀態(tài)數(shù)量。注意這些圖表示在應(yīng)用步驟6和7中的低質(zhì)量狀態(tài)篩選之前獲得的狀態(tài)數(shù)量。因此最終結(jié)果可能包含更少的狀態(tài)。
image.png

接下來(lái),我們以內(nèi)皮細(xì)胞為例展示ecotyper識(shí)別的細(xì)胞狀態(tài)結(jié)果

  1. state_assignment.txt:每個(gè)樣本被分配到具有最高推斷豐度的細(xì)胞狀態(tài)的信息,也就是每個(gè)樣本的主要細(xì)胞狀態(tài)。
image.png
  1. state_assignment_heatmap.png/pdf:展示在每個(gè)細(xì)胞狀態(tài)中具有最高 log2 FC的基因的表達(dá)情況,這些基因被稱為細(xì)胞狀態(tài)特異性標(biāo)記基因。列代表發(fā)現(xiàn)數(shù)據(jù)集中的樣本,而行代表了每個(gè)細(xì)胞狀態(tài)的標(biāo)記基因。
image.png
  1. "heatmap_top_ann.txt" 是用戶提供的注釋文件與細(xì)胞狀態(tài)相關(guān)的信息的整合。只有被分配到主要細(xì)胞狀態(tài)的樣本才會(huì)包含在這個(gè)文件中。
image.png

生態(tài)型部分輸出的結(jié)果

  1. "ecotype_abundance.txt" 文件包含了在發(fā)現(xiàn)數(shù)據(jù)集中的每個(gè)生態(tài)型(ecotype)相對(duì)豐度的信息。
image.png
  1. "ecotype_assignment.txt" 文件包含了將發(fā)現(xiàn)數(shù)據(jù)集中的樣本分配到各個(gè)生態(tài)型的信息。
image.png
  1. "heatmap_assigned_samples_viridis.pdf/png" 展示了分配了生態(tài)型的樣本中細(xì)胞狀態(tài)分?jǐn)?shù)的熱圖。
image.png
  1. nclusters_jaccard.png/pdf: "initial clusters" 指的是通過對(duì)Jaccard指數(shù)矩陣進(jìn)行聚類獲得的初始簇的數(shù)量。這個(gè)數(shù)量通常是通過應(yīng)用平均輪廓(average silhouette)方法來(lái)選擇的。
image.png
  1. jaccard_matrix.png/pdf:包含至少3個(gè)細(xì)胞狀態(tài)的生態(tài)型的Jaccard系數(shù)矩陣的熱圖。
image.png

小結(jié)

在本期推文中,我們介紹了如何使用EcoTyper從單細(xì)胞轉(zhuǎn)錄組數(shù)據(jù)中從頭發(fā)現(xiàn)細(xì)胞狀態(tài)和生態(tài)型。小編認(rèn)為,我們?cè)谘芯康倪^程中可以整合較多的單細(xì)胞數(shù)據(jù)集保證更為全面地發(fā)現(xiàn)細(xì)胞狀態(tài)和生態(tài)型。隨后,將模型應(yīng)用于Bulk轉(zhuǎn)錄組數(shù)據(jù)中恢復(fù)細(xì)胞狀態(tài)和生態(tài)型,結(jié)合Bulk數(shù)據(jù)樣本量大、表型數(shù)據(jù)多的優(yōu)勢(shì)更好的探索相關(guān)生物學(xué)結(jié)果。我們將在下期推文中和大家學(xué)習(xí)EcoTyper的最后一部分實(shí)操--De novo Discovery of Cell States and Ecotypes in Pre-Sorted Data,關(guān)于今天的學(xué)習(xí)內(nèi)容,感興趣的小伙伴快來(lái)用起來(lái)吧~

好啦,本期的分享到這里就結(jié)束了,我們下期再會(huì)~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容