Identification of cell types from single cell data using stable clustering
https://doi.org/10.1038/s41598-020-66848-3
- 一句话概括:
- 本文发明了一种新的clustering的pipeline来对单细胞数据进行聚类,通过比较发现这种聚类方式比之前常用的几种聚类方式比如SC3、SEURAT等都要稳定,其聚类效果也更接近实际细胞分类
1.Pipeline原理和算法介绍
*文章中描述的新的pipeline的workflow
1.1 Input&Gene filtering (A)
- Input : 输入的数据结构为单细胞的基因表达矩阵,行为基因,列为细胞
- Gene filtering : 去除掉在所有细胞中都没有表达的基因
- 输出 : 仍然为单细胞的基因表达矩阵,行为基因,列为细胞,此输出将作为下一步的输入
1.2 Measuring the dissimilarity between the cells (B)
- 计算细胞之间的不相似性(相似性),其实就是计算所有细胞之间的欧式距离;得到的矩阵行为细胞,列也为细胞,其中的元素为细胞之间的欧式距离
- 输入 : 上一步得到的基因表达矩阵
- 算法 : Euclidean Metric/Euclidean Distance (欧几里得度量/欧几里得距离),具体算法见文末
- 输出 : 输出为行为细胞列为细胞的矩阵,其中的元素是细胞之间的欧式距离
1.3 Clustering (C)
- 此步的目的是对以上得到的细胞间欧式距离的矩阵进行降维,并找到对于此数据集最佳的聚类个数(K)
- 过程
- 将以上的欧式距离矩阵进行t-SNE降维,得到一个 细胞数X2 的矩阵,这个过程重复50次,以下步骤(2,3,4)是对于每一次的结果而言
- 对得到的降维矩阵进行K-means聚类,其中K的范围为2到20;即进行19次聚类,其中参数K分别为2到20
- 以上得到的19次聚类结果,分别计算其Average silhouette值
- 在以上19个Average silhouette值中选出最大值,并得到这个最大值对应的K值
由于以上步骤(2,3,4)一共进行了50次,故得到50个K值,取这50个K值的平均值,并对其进行四舍五入,得到的数值即为以下使用的最佳K值
- 输入 : 细胞间欧式距离矩阵
- 算法 : t-SNE,K-means,Average silhouette method
- 输出 : 最佳K值;t-SNE降维结果(细胞数X2矩阵),具体选取哪次的结果文中未提及,推测可以选取任意一次的结果
1.4 Identifying the most stable clustering (D)
- 用以上的到的K值和t-SNE降维矩阵进行聚类,得到最稳定的聚类结果
- 输入 : 上一步得到的最佳K值和t-SNE降维矩阵
- 算法 : K-means,Jaccard coefficient
- 过程
- 用以上的到的K值和t-SNE降维矩阵进行n次K-means聚类,以下步骤(2,3,4)都是针对其中的每次聚类而言的
- 对t-SNE矩阵进行m次重新取样,具体方式为去掉其中5%的样本并用噪声数据点代替
- 对以上的到的m个新的t-SNE降维矩阵分别进行K-means聚类,共得到m个新的聚类,每个聚类中有k个cluster
- 4.1 计算原始聚类中每个cluster的Stability score;用原始聚类中的一个cluster与m个新聚类中的每一个进行如下计算:此cluster与某个新聚类结果中的每一个cluster做Jaccard coefficient计算,取其中的最大值;此最大值便为此cluster与此新聚类结果中最相似cluster的相似度;如果此Jaccard coefficient >= 0.75,则说此原始cluster在此次比对中是稳定的
- 4.2 计算原始聚类中每个cluster的Stability score;对于原始聚类中的每一个cluster,以上Jaccard coefficient计算一共计算m次,假设其中稳定的比对为q次,则说此原始聚类中此cluster的Stability score为q/m
- 4.3 计算原始聚类的总体Stability score;原始聚类的Stability score等于此聚类中所有cluster的Stability score的平均数
按上述步骤(2,3,4)一共得到n个原始聚类的总体Stability score,选择总体Stability score最高的那个聚类作为最终的最稳定聚类