使用Rtsne包进行t-SNE降维分析

欢迎关注”生信修炼手册”!

t-SNE降维算法是由机器学习领域的大牛在2008年提出的一种高效的降维算法,属于非线性降维算法的一种,相比之前常用的PCA算法,该算法更加的先进,应用的领域也非常的多,在单细胞转录组的数据分析中,t-SNE应用的更为广泛。

在cell ranger等专门的分析单细胞数据的软件包中,都提供了t-SNE降维和可视化分析,但是由于不同软件对于数据数据格式的要求不同,某些情况下,无法直接使用现有的软件包,比如我们可能只有一个基因在所有细胞中的表达量数据,此时无法直接导入cell ranger或者Seurat

由于软件接口设置的不同,为了更加灵活的进行数据分析,我们有必要掌握一些小而美的分析工具,单一的这些工具只能完成数据分析中的某一项内容,其功能的单一性,使得学习成本进一步降低,灵活性显著提升。

Rtsne就是一个专门进行t-SNE降维分析的R包,安装方式如下

install.packages("Rtsne")

只需要输入一个表达量的表格就可以了,每一行为一个细胞,每一列为一个基因,示意如下

使用Rtsne包进行t-SNE降维分析_第1张图片

基础的用法如下

tsne_out <- Rtsne(
  data,
  dims = 2,
  pca = FALSE,
  perplexity = 10,
  theta = 0.0,
  max_iter = 1000
)

dims参数设置降维之后的维度,默认值为2,perplexity参数的取值必须小于(nrow(data) - 1 )/ 3; theta参数取值越大,结果的准确度越低,默认值为0.5,max_iter参数设置最大迭代次数。

pca参数表示是否对输入的原始数据进行PCA分析,然后使用PCA得到的topN主成分进行后续分析,t-SNE算法的计算量是特别大的,对于维度较高的数据数据,先采用PCA降维可以有效提高运行的效率,默认采用top50的主成分进行后续分析,当然也可以通过initial_dims参数修改这个值。

运算完成之后,结果保存在tsne_out这个对象中

使用Rtsne包进行t-SNE降维分析_第2张图片

其中的Y就是降维之后的二维空间对应的数据点,可以根据这个值进行可视化,代码如下

plot(tsne_out$Y)

生成的图片如下

使用Rtsne包进行t-SNE降维分析_第3张图片

我们需要明白t-SNE只是一个降维算法,虽然它很先进,但是也只是能够将数据降低到二维或者三维空间,然后进行可视化的一个功能,对于细胞亚群的识别,本质是通过聚类分析来得到结果的,t-SNE只是能够更好的在低维空间展示聚类的结果而已,其他的降维算法也是同理。

·end·

—如果喜欢,快分享给你的朋友们吧—


扫描关注微信号,更多精彩内容等着你!

使用Rtsne包进行t-SNE降维分析_第4张图片

你可能感兴趣的:(使用Rtsne包进行t-SNE降维分析)