使用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

参考资料

相关推荐
高-老师7 天前
python生物信息多组学大数据深度挖掘与论文整理技巧实践技术应用
生物信息
高-老师7 天前
基于R语言生物信息学大数据分析与绘图实践技术应用
开发语言·数据分析·r语言·生物信息
青春不败 177-3266-052015 天前
python语言生物信息多组学大数据深度挖掘与论文整理技巧
开发语言·python·生物信息·多组学·高通量测序
青春不败 177-3266-052017 天前
基于R语言生物信息学大数据分析与绘图技术应用
数据分析·r语言·生物信息·生信·高通量
zhangfeng11331 个月前
mednexus.org/ 一个医学学术期刊传播平台 医学英文期刊传播平台中华医学会杂志社与威立(Wiley)合作打造
生物信息·医学
zd2005721 个月前
popEVE:人类疾病遗传学的全蛋白质组模型数据库
生物信息·基因变异
zhangfeng11332 个月前
百度免费大模型API深度解析 大厂llm大模型市场国产大模型API免费全平台对比指南,薅羊毛指南与实战建议 政策深度解析与
人工智能·百度·dubbo·生物信息
梦想的初衷~2 个月前
“科研创新与智能化转型“暨AI智能体(Agent)开发及与大语言模型的本地化部署、优化技术实践
人工智能·语言模型·自然语言处理·生物信息·材料科学
zhangfeng11332 个月前
DrugGPT chatgpt druggen 之间的关系 ,DrugGPT是基于gpt2基础上开发的
chatgpt·生物信息
zhangfeng11333 个月前
医疗智能体(eiHealth) 3.4.0 使用指南(for 华为云Stack 8.5.0) 0. 华为除了这个 还有医疗 和生信方面的 产品
华为·华为云·生物信息