前言
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è)部分:
那么,今天讓我們一起來(lái)學(xué)習(xí)一下它的第四個(gè)部分——De novo Discovery of Cell States and Ecotypes in Bulk Data
- EcoTyper的分析框架:
- Cell Type Fraction Estimation:估計(jì)組織中的主要細(xì)胞譜系(cell lineage)的比例。它使用 CIBERSORTx Fractions 模塊,該模塊基于signature matrix估算細(xì)胞比例。
- Cell Type Expression Purification:這一步驟使用 CIBERSORTx HiRes 模塊從Bulk組織轉(zhuǎn)錄組中提取細(xì)胞類(lèi)型特定的基因表達(dá)譜。它利用前一步驟估算的細(xì)胞比例,生成每種細(xì)胞類(lèi)型的基因表達(dá)譜。
- Cell State Discovery:EcoTyper 使用非負(fù)矩陣分解(NMF)識(shí)別細(xì)胞狀態(tài)。這個(gè)過(guò)程包括選擇適當(dāng)數(shù)量的細(xì)胞狀態(tài),使用 NMF 算法分解表達(dá)譜,并提取每個(gè)細(xì)胞狀態(tài)的特征基因。
- Choosing the Number of Cell States:基于Cophenetic系數(shù)確定細(xì)胞狀態(tài)的數(shù)量。該系數(shù)在細(xì)胞狀態(tài)數(shù)目變化時(shí)量化分類(lèi)穩(wěn)定性,通過(guò)這種方式選擇最適合的細(xì)胞狀態(tài)數(shù)。
- Extracting Cell State Information:提取用于后續(xù)分析的細(xì)胞狀態(tài)信息。
- Cell State QC Filter:過(guò)濾掉不合格的細(xì)胞狀態(tài)。
- Advanced Cell State QC Filter:在多種腫瘤類(lèi)型的情況下,EcoTyper推薦使用高級(jí)過(guò)濾器,它可以檢測(cè)到具有異常低方差和高表達(dá)的標(biāo)志基因的不良質(zhì)量細(xì)胞狀態(tài)。
- Ecotype Discovery:識(shí)別細(xì)胞狀態(tài)在樣本中的共現(xiàn)模式,即生態(tài)型或細(xì)胞群。EcoTyper使用Jaccard指數(shù)來(lái)量化每對(duì)細(xì)胞狀態(tài)在樣本中的重疊程度,并應(yīng)用層次聚類(lèi)確定生態(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")```
其他:
安裝Docker。
獲取CIBERSORTx Fractions和CIBERSORTx HiRes模塊的Docker容器,這兩個(gè)模塊可以從CIBERSORTx網(wǎng)站獲取,需要按照網(wǎng)站上的說(shuō)明進(jìn)行安裝。
獲取運(yùn)行Docker容器所需的token,這也可以從CIBERSORTx網(wǎng)站獲取。
輸入數(shù)據(jù):
- 表達(dá)譜數(shù)據(jù):TCGA部分肺腺癌(LUAD)和肺鱗癌(LUSC)的數(shù)據(jù)(bulk-tissue expression matrix)。數(shù)據(jù)存儲(chǔ)在
example_data/bulk_lung_data.txt
中。
2. 樣本注釋文件,數(shù)據(jù)存儲(chǔ)在example_data/bulk_lung_annotation.txt
。
- 細(xì)胞類(lèi)型比例文件,數(shù)據(jù)存儲(chǔ)在
example_data/bulk_fractions_example.txt
。
2.discovery scripts
EcoTyper_discovery_bulk.R
腳本用于在空間轉(zhuǎn)錄組數(shù)據(jù)中恢復(fù)細(xì)胞狀態(tài)和生態(tài)型。
Rscript EcoTyper_discovery_bulk.R -h
此腳本接受 YAML 格式的配置文件作為輸入文件(config_discovery_bulk.yml)。
參數(shù)詳解:
-
Discovery dataset name : "MyDiscovery"
發(fā)現(xiàn)數(shù)據(jù)集名稱(chēng)
-
Expression matrix : "example_data/bulk_lung_data.txt"
The expression matrix should be in the TPM or FPKM space for bulk RNA-seq and non-logarithmic (exponential) space for microarrays.
-
Expression type : "RNA-seq"
Possible values: "RNA-seq", "Affymetrix", "Other"
-
Number of NMF restarts : 5
NMF重新啟動(dòng)次數(shù)參數(shù),這是一個(gè)非常耗時(shí)的過(guò)程,這里建議至少設(shè)置為50。
-
Maximum number of states per cell type : 20
每種細(xì)胞類(lèi)型可能的狀態(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)型被過(guò)濾掉
運(yùn)行腳本:
Rscript EcoTyper_discovery_bulk.R -c config_discovery_bulk.yml
3.結(jié)果解讀
輸出的結(jié)果包括3類(lèi),rank_plot圖、各種細(xì)胞類(lèi)型的細(xì)胞狀態(tài)以及生態(tài)型。讓我們來(lá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)。
接下來(lái),我們以?xún)?nèi)皮細(xì)胞為例展示ecotyper識(shí)別的細(xì)胞狀態(tài)結(jié)果
- state_abundances.txt:包含了在每個(gè)樣本中每種細(xì)胞狀態(tài)的相對(duì)豐度信息。
- state_assignment.txt:每個(gè)樣本被分配到具有最高推斷豐度的細(xì)胞狀態(tài)的信息,也就是每個(gè)樣本的主要細(xì)胞狀態(tài)。
-
state_assignment_heatmap.png/pdf:展示在每個(gè)細(xì)胞狀態(tài)中具有最高 log2 FC的基因的表達(dá)情況,這些基因被稱(chēng)為細(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)。
image.png
-
"heatmap_data.txt" 是輸出熱圖 "state_assignment_heatmap" 中所顯示的熱圖的基礎(chǔ)數(shù)據(jù)。這些數(shù)據(jù)包括了基因的表達(dá)水平,經(jīng)過(guò)標(biāo)準(zhǔn)化處理,用于展示不同細(xì)胞狀態(tài)中基因表達(dá)的變化。通常,每一列代表了發(fā)現(xiàn)數(shù)據(jù)集中的一個(gè)樣本,而每一行代表了每個(gè)細(xì)胞狀態(tài)的標(biāo)志基因。
image.png
- "heatmap_top_ann.txt" 是用戶(hù)提供的注釋文件與細(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)相對(duì)豐度的信息。
- "ecotype_assignment.txt" 文件包含了將發(fā)現(xiàn)數(shù)據(jù)集中的樣本分配到各個(gè)生態(tài)型的信息。未被分配到任何生態(tài)型的樣本將從該文件中被過(guò)濾掉。
- "heatmap_assigned_samples_viridis.pdf/png" 展示了EcoTyper推斷出的細(xì)胞狀態(tài)分?jǐn)?shù)的熱圖,這些細(xì)胞狀態(tài)分配給了被分配到生態(tài)型的樣本。
- nclusters_jaccard.png/pdf: "initial clusters" 指的是通過(guò)對(duì)Jaccard指數(shù)矩陣進(jìn)行聚類(lèi)獲得的初始簇的數(shù)量。這個(gè)數(shù)量通常是通過(guò)應(yīng)用平均輪廓(average silhouette)方法來(lái)選擇的。
- jaccard_matrix.png/pdf:包含至少3個(gè)細(xì)胞狀態(tài)的生態(tài)型的Jaccard指數(shù)矩陣的熱圖。
小結(jié)
在本期推文中,我們介紹了如何使用EcoTyper從Bulk組織表達(dá)數(shù)據(jù)中從頭發(fā)現(xiàn)細(xì)胞狀態(tài)和生態(tài)系統(tǒng)
。我們將在下期推文中繼續(xù)和大家學(xué)習(xí)EcoTyper更為常用的實(shí)操技巧--De novo Discovery of Cell States and Ecotypes in scRNA-seq Data,關(guān)于今天的學(xué)習(xí)內(nèi)容,感興趣的小伙伴快來(lái)用起來(lái)吧~
好啦,本期的分享到這里就結(jié)束了,我們下期再會(huì)~