前言
EcoTyper是一個(gè)基于機(jī)器學(xué)習(xí)的工具,能夠從Bulk、單細(xì)胞、以及空間分辨率的基因表達(dá)數(shù)據(jù)中大規(guī)模地識別并驗(yàn)證細(xì)胞狀態(tài)和生態(tài)型。我們在前面的推文中介紹了EcoTyper的分析框架和部分實(shí)操,感興趣的小伙伴可以先閱讀這一部分哦。
EcoTyper的代碼實(shí)操主要分為6個(gè)部分:
那么,今天讓我們一起來學(xué)習(xí)一下它的第六個(gè)部分——De novo Discovery of Cell States and Ecotypes in Pre-Sorted Data。
- EcoTyper的分析框架:
- Extract cell type specific genes:在細(xì)胞狀態(tài)鑒定之前,EcoTyper會(huì)默認(rèn)應(yīng)用篩選來移除那些在給定細(xì)胞類型中沒有特異表達(dá)的基因。它通過差異表達(dá)分析來找出某個(gè)細(xì)胞類型與其他細(xì)胞類型之間的差異。Q值大于0.05的基因(使用雙側(cè)Wilcox檢驗(yàn),并使用Benjamini-Hochberg方法進(jìn)行多重假設(shè)校正)會(huì)從每個(gè)細(xì)胞類型中篩除。
- Cell state discovery:EcoTyper利用非負(fù)矩陣分解(NMF)從細(xì)胞類型特定的表達(dá)數(shù)據(jù)中鑒定細(xì)胞狀態(tài)。NMF將表達(dá)矩陣分解成兩個(gè)非負(fù)矩陣:一個(gè)表示基因在每個(gè)細(xì)胞狀態(tài)中的表達(dá)水平,另一個(gè)表示每個(gè)細(xì)胞狀態(tài)在每個(gè)樣本中的相對豐度。
- Choosing the number of cell states:基于cophenetic系數(shù)確定細(xì)胞狀態(tài)數(shù)量。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 QC filter:為了減少虛假細(xì)胞狀態(tài)的識別,EcoTyper應(yīng)用了Adaptive False Positive Index(AFI)篩選。EcoTyper會(huì)自動(dòng)過濾掉AFI大于等于1的細(xì)胞狀態(tài)。
- Advanced cell state QC filter:對于包含多種腫瘤類型的數(shù)據(jù)集,建議使用高級篩選。這個(gè)篩選通過計(jì)算"dropout score"來標(biāo)記質(zhì)量較差的細(xì)胞狀態(tài)。
- Ecotype (cellular community) discovery:生態(tài)型是通過識別細(xì)胞狀態(tài)在樣本中的共現(xiàn)模式來推導(dǎo)的。它使用Jaccard指數(shù)來量化每對細(xì)胞狀態(tài)在發(fā)現(xiàn)數(shù)據(jù)集中的樣本重疊度,然后使用層次聚類等方法來確定生態(tài)型。
代碼流程
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)備:
這是官網(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ù):
- 表達(dá)譜數(shù)據(jù):結(jié)直腸癌scRNA-seq數(shù)據(jù),數(shù)據(jù)存儲(chǔ)在
example_data/Tutorial_6/PresortedDiscovery
中。
- 樣本注釋文件,數(shù)據(jù)存儲(chǔ)在
example_data/Tutorial_6/PresortedDiscovery_annotation.txt
。
2.discovery scripts
EcoTyper_discovery_presorted.R
腳本用于在預(yù)先分選細(xì)胞類型的轉(zhuǎn)錄組數(shù)據(jù)中恢復(fù)細(xì)胞狀態(tài)和生態(tài)型。
Rscript EcoTyper_discovery_presorted.R -h
此腳本接受 YAML 格式的配置文件作為輸入文件(config_discovery_presorted.yml)。
參數(shù)詳解:
-
Discovery dataset name : "PresortedDiscovery"
發(fā)現(xiàn)數(shù)據(jù)集名稱
-
Expression matrices : "example_data/Tutorial_6/PresortedDiscovery"
表達(dá)數(shù)據(jù)的文件路徑
-
Annotation file : "example_data/Tutorial_6/PresortedDiscovery_annotation.txt"
注釋數(shù)據(jù)的文件路徑
-
Annotation file column to scale by : "Histology"
指定一個(gè)注釋文件中的列名,按照這個(gè)列的值,對基因進(jìn)行縮放(均值為0,方差為1)
-
Annotation file column(s) to plot : ["Histology", "Tissue"]
指定注釋文件中哪些列將用作輸出熱圖中的顏色條(color bar)
-
Number of NMF restarts : 5
NMF重新啟動(dòng)次數(shù)參數(shù)。EcoTyper 使用NMF(非負(fù)矩陣分解)來鑒定細(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ù)量。
-
Minimum number of states in ecotypes : 3
少于3種細(xì)胞狀態(tài)的生態(tài)型被過濾掉
運(yùn)行腳本:
Rscript EcoTyper_discovery_presorted.R -c config_discovery_presorted.yml
3.結(jié)果解讀
輸出的結(jié)果包括3類,rank_plot圖、各種細(xì)胞類型的細(xì)胞狀態(tài)以及生態(tài)型。我們來逐各學(xué)習(xí)。
- 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)。
接下來,我們以內(nèi)皮細(xì)胞為例展示ecotyper識別的細(xì)胞狀態(tài)結(jié)果
- state_assignment.txt:每個(gè)樣本被分配到具有最高推斷豐度的細(xì)胞狀態(tài)的信息,也就是每個(gè)樣本的主要細(xì)胞狀態(tài)。
- 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)記基因。所選的標(biāo)記基因顯示在熱圖的左側(cè)。熱圖按照細(xì)胞狀態(tài)的分配進(jìn)行排序,頂部的顏色條顯示了給定樣本的主要狀態(tài)。
- "heatmap_data.txt" 是輸出熱圖 "state_assignment_heatmap" 中所顯示的熱圖的基礎(chǔ)數(shù)據(jù)。這些數(shù)據(jù)包括了基因的表達(dá)水平,經(jīng)過標(biāo)準(zhǔn)化處理,用于展示不同細(xì)胞狀態(tài)中基因表達(dá)的變化。通常,每一列代表了發(fā)現(xiàn)數(shù)據(jù)集中的一個(gè)樣本,而每一行代表了每個(gè)細(xì)胞狀態(tài)的標(biāo)志基因。
- "heatmap_top_ann.txt" 是用戶提供的注釋文件與細(xì)胞狀態(tài)相關(guān)的信息的整合。只有被分配到主要細(xì)胞狀態(tài)的樣本才會(huì)包含在這個(gè)文件中。
生態(tài)型部分輸出的結(jié)果
- "ecotype_abundance.txt" 文件包含了在發(fā)現(xiàn)數(shù)據(jù)集中的每個(gè)生態(tài)型(ecotype)相對豐度的信息。
-
"ecotype_assignment.txt" 文件包含了將發(fā)現(xiàn)數(shù)據(jù)集中的樣本分配到各個(gè)生態(tài)型的信息。未被分配到任何生態(tài)型的樣本將從該文件中被過濾掉。
image.png
- "heatmap_assigned_samples_viridis.pdf/png" 展示了EcoTyper推斷出的細(xì)胞狀態(tài)分?jǐn)?shù)的熱圖,這些細(xì)胞狀態(tài)分配給了被分配到生態(tài)型的樣本。
- nclusters_jaccard.png/pdf: "initial clusters" 指的是通過對Jaccard指數(shù)矩陣進(jìn)行聚類獲得的初始簇的數(shù)量。這個(gè)數(shù)量通常是通過應(yīng)用平均輪廓(average silhouette)方法來選擇的。
- jaccard_matrix.png/pdf:包含至少3個(gè)細(xì)胞狀態(tài)的生態(tài)型的Jaccard指數(shù)矩陣的熱圖。
小結(jié)
在本期推文中,我們介紹了如何使用EcoTyper從預(yù)先分選細(xì)胞類型的數(shù)據(jù)中發(fā)現(xiàn)細(xì)胞狀態(tài)和生態(tài)系統(tǒng)。截止到本期推文,我們學(xué)習(xí)完了EcoTyper全部的理論和實(shí)操部分。通過系統(tǒng)學(xué)習(xí)EcoTyper,相信大家可以輕松的將這個(gè)強(qiáng)大的工具應(yīng)用于自己的研究中。
EcoTyper的輸出結(jié)果十分詳盡,我們可以基于此進(jìn)行許多下游分析,在這里,我們梳理兩個(gè)常見的分析思路。
1、基于"state_assignment.txt"文件輸出的每個(gè)樣本的細(xì)胞狀態(tài)。我們可以將細(xì)胞狀態(tài)與臨床結(jié)果(如患者的生存時(shí)間)進(jìn)行關(guān)聯(lián)研究。即使用 Kaplan-Meier 曲線和 log-rank 檢驗(yàn)比較數(shù)據(jù)集中富集于不同的細(xì)胞狀態(tài)的患者整體生存之間是否有差異。
2、基于"state_abundances.txt"文件輸出的每個(gè)樣本中每種細(xì)胞狀態(tài)的相對豐度信息。我們可以將細(xì)胞狀態(tài)或生態(tài)型的相對豐度視為一個(gè)連續(xù)變量,使用R包 survival 中的 coxph 函數(shù)構(gòu)建 Cox 比例風(fēng)險(xiǎn)回歸模型評估細(xì)胞狀態(tài)與總體生存之間的關(guān)系(保護(hù)因素/風(fēng)險(xiǎn)因素)。
生命體系實(shí)際上是一個(gè)由各種不同的生物化學(xué)反應(yīng)通路模塊構(gòu)成的分子網(wǎng)絡(luò)系統(tǒng)。與僅研究單一細(xì)胞類型不同,研究整個(gè)細(xì)胞生態(tài)系統(tǒng)的結(jié)構(gòu)方式可以為我們提供更全面的視角,以解析疾病的發(fā)病機(jī)制和異質(zhì)性。此外,細(xì)胞狀態(tài)和生態(tài)型還有預(yù)測臨床結(jié)局、免疫治療響應(yīng)的能力。通過使用EcoTyper,我們能夠更深入地探索和理解這些生物化學(xué)網(wǎng)絡(luò)系統(tǒng),從而為研究和治療提供更全面的洞察。
好啦,本期的分享到這里就結(jié)束了,我們下期再會(huì)~