1介绍

Snifter提供了一个R包装器Opentsne实施快速插值T-SNE(FI-TSNE)。它是基于蛇怪网状。该小插图旨在简要概述将其应用于SCRNASEQ数据,但并未为包装中的可用选项提供全面的指南。

强烈建议您在Snifter和Opentsne文档要充分了解可用选项。

2设置数据

我们将通过生成一些玩具数据来说明使用Snifter的使用。首先,我们将加载所需的库,并设置一个随机种子以确保模拟数据可重现(请注意:通过多次运行算法来确保T-SNE嵌入是可靠的,这是很好的做法)。

库(“ Snifter”)库(“ GGPLOT2”)them_set(them_bw())set.seed(42)n_obs <-500 n_feats <-200 neyme_1 neem_1 <-rnorm(n_feats)ney_2(n_obs,rnorm(n_feats,neem_1))counts_b < -  replicate(n_obs,rnorm(n_feats,ney_2))counts counts <-t(cbind(cbind(counts_a,counts_b))label <-pep(c(c)),每个= n_obs)

3运行T-SNE

包装的主要功能在于适合功能。此函数返回T-SNE坐标的矩阵。在这种情况下,我们传递了基于对数符号计数计算的20个主要组件。我们根据作者确定的离散单元类型的颜色点。

fit < -  fitsne(counts,andural_state = 42L)ggplot() + aes(fit [,1],fit [,2],color = label) + geom_point(pch = 19) + scale_colour_discrete(name =“ cluster”) +实验室(x =“ t-sne 1”,y =“ t-sne 2”)

4将新数据投射到现有的嵌入中

OPENTNSE软件包和扩展Snifter还允许将新数据嵌入现有的T-SNE嵌入中。在这里,我们将将数据分为“培训”和“测试”集。之后,我们使用训练数据生成T-SNE嵌入,并将测试数据投射到此嵌入中。

test_ind < -  sample(nrow(counts),nrow(counts) / 2)train_ind <-setDiff(seq_len(nrow(counts)),test_ind)triar_mat <-计数[trian_ind,test_mat] test_mat <-counts <-count_ind_ind,test_ind,test_ind,tast_ind,train_label <] train_label <- 标签[train_ind] test_label < -  label [test_ind]嵌入<-Fitsne(train_mat,random_state = 42L)

一旦生成嵌入,我们现在就可以项目看不见的测试数据到此T-SNE嵌入中。

new_coords < -  project(嵌入,new = test_mat,old = train_mat)ggplot() + geom_point(aes(aes embedding [,1],嵌入[,2],color = train_label,shape =“ train”)) + geom_point(aes)(new_coords [,1],new_coords [,2],color = test_label,shape =“ test”)) + scale_colour_discrete(name =“ cluster”) + scale_shape_discrete(name = null) + labs + labs(x =“ t-sne 1)“,y =“ t-sne 2”)

会话信息

SessionInfo()#> R版本4.2.0 RC(2022-04-19 R82224)#>平台:x86_64-pc-linux-gnu(64位)#>在下面运行:产品:默认#> blas:/home/biocbuild/bbs-3.15-bioc/r/lib/libblas.so#> lapack:/home/biocbuild/bbs-3.15-bioc/r/lib/lib/lib/librlapack.so#>##################> locale:#> [1] lc_ctype = en_us.utf-8 lc_numeric = c#> [3] lc_time = en_gb lc_collat​​e = c#> [5] lc_monetary = en_us.us.utf-8 lc_messages = en_us.utf-8#>> en_us.utf-8#>>>>>>>>>>>>[7] lc_paper = en_us.utf-8 lc_name = c#> [9] lc_address = c lc_telephone = c#> [11] lc_measurement = en_us.utf-8 lc_istiencialica1] stats graphics grDevices utils datasets methods base #> #> other attached packages: #> [1] ggplot2_3.3.5 snifter_1.6.0 BiocStyle_2.24.0 #> #> loaded via a namespace (and not attached): #> [1] reticulate_1.24 tidyselect_1.1.2 xfun_0.30 #> [4] bslib_0.3.1 purrr_0.3.4 lattice_0.20-45 #> [7] basilisk.utils_1.8.0 colorspace_2.0-3 vctrs_0.4.1 #> [10] generics_0.1.2 htmltools_0.5.2 yaml_2.3.5 #> [13] utf8_1.2.2 rlang_1.0.2 jquerylib_0.1.4 #> [16] pillar_1.7.0 withr_2.5.0 glue_1.6.2 #> [19] DBI_1.1.2 lifecycle_1.0.1 stringr_1.4.0 #> [22] munsell_0.5.0 gtable_0.3.0 evaluate_0.15 #> [25] labeling_0.4.2 knitr_1.38 fastmap_1.1.0 #> [28] parallel_4.2.0 fansi_1.0.3 highr_0.9 #> [31] Rcpp_1.0.8.3 scales_1.2.0 filelock_1.0.2 #> [34] BiocManager_1.30.17 magick_2.7.3 jsonlite_1.8.0 #> [37] farver_2.1.0 basilisk_1.8.0 dir.expiry_1.4.0 #> [40] png_0.1-7 digest_0.6.29 stringi_1.7.6 #> [43] bookdown_0.26 dplyr_1.0.8 rprojroot_2.0.3 #> [46] grid_4.2.0 here_1.0.1 cli_3.3.0 #> [49] tools_4.2.0 magrittr_2.0.3 sass_0.4.1 #> [52] tibble_3.1.6 crayon_1.5.1 pkgconfig_2.0.3 #> [55] ellipsis_0.3.2 Matrix_1.4-1 assertthat_0.2.1 #> [58] rmarkdown_2.14 R6_2.5.1 compiler_4.2.0