ShinyCell包是由杜克-新加坡国立大学医学院的John F. Ouyang团队开发的单细胞分析工具包,实现基于shiny网页交互式展示单细胞数据;于2021年3月发表于Bioinformatics杂志。如文章中介绍,ShinyCell相比同类工具具有多个优势,例如直观的side-by-side的降维可视化方式,hdf5格式保存表达矩阵从而读取快速,支持pdf/png保存图片,支持多种常见单细胞数据类型等。参考其教程文档,学习记录如下。
- Paper | ShinyCell: simple and sharable visualization of single-cell gene expression data
- DOI | https://doi.org/10.1093/bioinformatics/btab209
- Github | https://github.com/SGDDNB/ShinyCell
1. 安装R包
|
|
- ShinyCell支持多种单细胞数据类型,包括Seurat, SCE(singlecellexperiment), h5ad, loom;并均提供了相应的示例文件;
- 如其文档所强调,ShinyCell是一个可视化工具,而不是分析工具;所以提供的单细胞数据需要已经完成基础的上游分析;
- 下面主要以Seurat类型为例进行学习
|
|
2. 基础用法
2.1 示例数据
|
|
单细胞数据里需包括(1)标准化表达矩阵;(2)细胞meta信息;(3)降维信息。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
### (1)标准化表达矩阵 dim(seu) # [1] 12590 9852 Assays(seu) # [1] "RNA" seu@assays$RNA@data[1:4,1:4] #注意是ENSEMBL基因ID # 4 x 4 sparse Matrix of class "dgCMatrix" # FM_AAACCTGAGAAACGCC-1 FM_AAACCTGAGTGGAGTC-1 FM_AAACCTGCATAGAAAC-1 FM_AAACCTGTCATTCACT-1 # ENSG00000000003 . . 0.8413237 . # ENSG00000000419 . . . . # ENSG00000000457 . . . . # ENSG00000000460 . . . . ### (2)细胞meta信息 head(t(seu@meta.data[1,]),10) # FM_AAACCTGAGAAACGCC-1 # orig.ident "FM" # RNA_snn_res.0.5 "5" # library "FM" # nUMI "13798" # nGene "3522" # pctMT "1.232063" # pctHK "20.77113" # score_S "-0.2176265" # score_G2M "-0.3646008" # phase "G1" ### (3)降维信息 names(seu@reductions) # [1] "pca" "tsne" "umap" "diffmap" "fdl" head(Embeddings(seu, reduction = "umap")) # UMAP_1 UMAP_2 # FM_AAACCTGAGAAACGCC-1 -7.728941 -3.2370806 # FM_AAACCTGAGTGGAGTC-1 -7.048894 2.8379904 # FM_AAACCTGCATAGAAAC-1 -7.768705 1.6628623 # FM_AAACCTGTCATTCACT-1 -6.059119 3.3121483 # FM_AAACCTGTCTCTGAGA-1 -8.030442 1.5388506 # FM_AAACGGGCAGGCGATA-1 -9.831629 -0.5126803
2.2 生成shiny网页
(1)生成meta配置文件
|
|
ID, fID 对应原始数据;UI, fUI, fCL 分布表示在shiny中展示的meta title,level name,colors
fROW表示 legend的行数,default 表示是否为默认展示的两种cell info,grp表示是否为分组类型
(2)生成shiny配置文件
|
|
- 除了其中的
gene.mapping
参数(需要在单细胞数据的基因名为ENSEMBL格式时设置为TRUE),其余均为默认参数;- 此外还有其它参数,包括默认展示的gene,降维类型;
shiny.footnotes
参数还支持设置网页的脚注用以交代数据集来源。
(3)最后运行shiny网页即可
|
|
3. 模块介绍
(1)完成上述步骤后即可在本地生成一个shiny网页,下面结合作者分享的示例http://shinycell1.ddnetbio.com/介绍其内容;
在每个模块中,均有3个Toggle选项支持筛选细胞,调整部分绘图参数等。
(2)如上图所示,ShinyCell主要支持7个可视化模块;若从绘图类型来说共是6种图
模块 | 图形 | 含义 | e.g. | |
---|---|---|---|---|
1 | CellInfo vs GeneExpr | 降维图 | 对比可视化细胞的分群信息与表达信息 | A+B |
2 | CellInfo vs CellInfo | 降维图 | 对比可视化细胞的两种不同分群信息 | A+A |
3 | GeneExpr vs GeneExpr | 降维图 | 对比可视化细胞的两种不同表达信息 | B+B |
4 | Gene coexpression | 降维图 | 可视化细胞的两种不同表达信息 | C |
5 | Violinplot / Boxplot | 小提琴图/箱图 | 可视化特定分群下,细胞的表达分布 | D |
6 | Bubbleplot / Heatmap | 点图/热图 | 可视化特定分群下,细胞的多个表达分布 | F |
7 | Proportion plot | 柱状图 | 可视化特定分群下,细胞的另一种分群的分布 | E |
4. 进阶用法
4.1 meta config调整
-
如上介绍,生成shiny网页的第一步是根据单细胞数据的meta信息生成相应的config文件,用以设置模块可视化的细节。
-
默认情况下会使用全部的meta信息,如需调整一方面可直接修改原来的单细胞数据;另一方面也可以使用ShinyCell包进行部分修改,如下所示。
|
|
如需修改特定meta的level factor顺序,似乎只能在原始单细胞数据的meta中进行修改。
4.2 多个数据集
-
ShinyCell支持在同一个网页内独立展示多个的数据集,可参考示例网页http://shinycell2.ddnetbio.com
-
简单生成方法如下
|
|
4.3 linux平台
- 对于大型单细胞数据集,需要在服务器linux平台分析时,大体与上述方式类似,简述流程如下。
|
|