使用ShinyCell展示你的单细胞数据

在我参与发表我的第一篇植物单细胞文章中,我用Shiny开发了一个简单的单细胞可视化网站,目前已经运行了5年了,有上万的访问,唯一的不足就是太简陋。我一直想着能不能找个一个更好的工具进行展示,最近发现了一个工具,ShinyCell,https://github.com/SGDDNB/ShinyCell。

他的安装非常简单,就是安装如下的R包

r 复制代码
reqPkg = c("data.table", "Matrix", "hdf5r", "reticulate", "ggplot2", 
           "gridExtra", "glue", "readr", "RColorBrewer", "R.utils", "Seurat")
newPkg = reqPkg[!(reqPkg %in% installed.packages()[,"Package"])]
if(length(newPkg)){install.packages(newPkg)}

# If you are using h5ad file as input, run the code below as well
# reticulate::py_install("anndata")

reqPkg = c("shiny", "shinyhelper", "data.table", "Matrix", "DT", "hdf5r", 
           "reticulate", "ggplot2", "gridExtra", "magrittr", "ggdendro")
newPkg = reqPkg[!(reqPkg %in% installed.packages()[,"Package"])]
if(length(newPkg)){install.packages(newPkg)}


devtools::install_github("SGDDNB/ShinyCell")

然后,你读取你分析得到的Seurat文件,注意readySeu_rset.rds对应的是你使用Seura分析得到,并保存的Rds数据。接着,使用createConfig创建配配置,并用makeShinyApp制作shiny文件。

r 复制代码
library(Seurat)
library(ShinyCell)
getExampleData() #案例数据
seu.obj = readRDS("readySeu_rset.rds")
scConf = createConfig(seu.obj )
makeShinyApp(seu.obj , scConf, gene.mapping = TRUE,
             shiny.title = "ShinyCell Quick Start") 

makeShinyApp 可以需要修改的参数如下

  • gex.slot和gex.assay 用于定义展示的表达量数据的位置,比如说Seurat可以选择"RNA" 还是 "integrated"
  • gene.mapping: 一般是gene_id和gene symbol的对应关系。
  • shiny.dir 输出路径,默认是当前目录下的shinyApp。

最后输出的文件夹里包括ui.R, server.R 以及一系列的数据,可以通过Rstudio打开该文件夹,然后点开ui.R或者server.R 就可以看到Run App,用于启动。

如果需要在Shiny Server中展示,需要额外安装一个shiny server, 以ubuntu为例,在服务器上运行如下命令

r 复制代码
sudo apt-get install gdebi-core
wget https://download3.rstudio.org/ubuntu-18.04/x86_64/shiny-server-1.5.22.1017-amd64.deb
sudo gdebi shiny-server-1.5.22.1017-amd64.deb

此外,服务器的R至少需要配置如下R包

r 复制代码
# 定义需要安装和加载的包列表
packages <- c("shiny", "shinyhelper", "data.table", "Matrix", "DT", "magrittr",
              "ggplot2", "ggrepel", "hdf5r", "ggdendro", "gridExtra")

# 安装未安装的包
install_all_packages <- function(packages) {
  new_packages <- packages[!(packages %in% installed.packages()[,"Package"])]
  if (length(new_packages)) install.packages(new_packages, dependencies = TRUE)
}

# 调用函数安装任何未安装的包
install_all_packages(packages)

# 测试:加载所有包
lapply(packages, library, character.only = TRUE)

接着,将输出的文件夹,例如shinyApp移动到/srv/shiny-server目录下, 你就可以通过浏览器访问对应的项目了,例如 http://服务器地址:3838/shiny-server

参考资料

相关推荐
qq_214782617 天前
新工具:轻松可视化基因组,部分功能超IGV~
机器学习·信息可视化·数据分析·生物信息
qq_214782611 个月前
Python散点图矩阵代码模版
数据库·python·mysql·信息可视化·数据挖掘·数据分析·生物信息
陆沙2 个月前
gnuplot使用实例
开发语言·生物信息·gnuplot
丸丸丸子w3 个月前
生物信息学 GO、KEGG
生物信息·kegg
无名草鸟4 个月前
【读文献】DynamicBind生成式模型预测蛋白配体复合物
深度学习·生物信息·蛋白质结构预测
qq_214782616 个月前
Jupyter Notebook又一地理数据可视化扩展!
开发语言·python·jupyter·信息可视化·生物信息
土豆西红柿青椒7 个月前
小tips: add pub key to GitHub
生物信息
橙子牛奶糖7 个月前
GWAS:plink进行meta分析
gwas·生物信息
frank_haha10 个月前
图神经网络和分子表征:3. 不变网络最后的辉煌
人工智能·神经网络·生物信息