FIt-SNE || 是时候给tSNE加个速了

随着单细胞通量的提高,对我们的计算速度要求也越来越高。我们知道在绘制图谱的时候现在有两个选择:tsne和umap。虽然umap在速度上有很大的改观,但是毕竟还有人需要tsne的结构。

其实,Seurat提供了计算tsne的另一种方法:FIt-SNE。速度要比Rtsne:快很多。

tsne.method 
Select the method to use to compute the tSNE. Available methods are:

Rtsne: Use the Rtsne package Barnes-Hut implementation of tSNE (default)

FIt-SNE: Use the FFT-accelerated Interpolation-based t-SNE. Based on Kluger Lab code found here: https://github.com/KlugerLab/FIt-SNE

FIt-SNE的文章发表在:
Linderman, G.C., Rachh, M., Hoskins, J.G. et al. Fast interpolation-based t-SNE for improved visualization of single-cell RNA-seq data. Nat Methods 16, 243–245 (2019). https://doi.org/10.1038/s41592-018-0308-4

所以,当有这样的需要的时候,可以考虑使用。

t-随机邻域嵌入(t-SNE)是一种非常成功的高维数据集降维和可视化方法。t-SNE的一种常用实现是在梯度下降的每次迭代中使用Barnes-Hut算法来近似梯度。其加速实现如下:

  • N-body Simulation的计算:我们在等宽网格上插值并使用FFT进行卷积,而不是使用Barnes-Hut近似 N-body Simulation,大大减少了每次梯度下降迭代时计算梯度的时间。看看这篇文章来直观了解它是如何工作的。

  • 计算输入相似度:我们使用Annoy库来近似最近的邻居,而不是使用vant- point树来计算最近的邻居。邻居查找是多线程的,以利用多核机器的优势。相对于严格意义上的“最近”邻居,使用“近”邻居更快,但也有平滑效果,这可以用于嵌入一些数据集(参见Linderman等人(2017))。如果需要细微的细节(例如识别小群),那么使用优势点树(在本实现中也是多线程的)。

https://github.com/KlugerLab/FIt-SNE

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。