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

参考资料

相关推荐
Red Red2 个月前
GEO数据库提取疾病样本和正常样本|GEO数据库区分疾病和正常样本|直接用|生物信息|生信
开发语言·数据库·笔记·学习·r语言·c#·生物信息
tRNA做科研2 个月前
Bio-Linux-shell详解-2-基本Shell命令快速掌握
linux·运维·服务器·生物信息·计算生物学
Red Red2 个月前
GEO数据的下载和处理|GEO数据转换为Gene symbol|GEO注释文件提取symbol|查看样本标签|查看GEO数据疾病或正常|生物信息基础
数据库·笔记·学习·r语言·生物信息·geo数据库
图灵生信3 个月前
python脚本:输入基因名,通过爬虫的方式获取染色体上的location。
生物信息
Crayon小鱼干3 个月前
怎样使用 Juicer tools 的 dump 命令将.hic文件转换为交互矩阵matrix计数文件 (Windows)
生物信息·juicer tools·.hic·hic数据·schic·contact matrix·交互矩阵
qq_214782614 个月前
新工具:轻松可视化基因组,部分功能超IGV~
机器学习·信息可视化·数据分析·生物信息
qq_214782615 个月前
Python散点图矩阵代码模版
数据库·python·mysql·信息可视化·数据挖掘·数据分析·生物信息
陆沙6 个月前
gnuplot使用实例
开发语言·生物信息·gnuplot
丸丸丸子w7 个月前
生物信息学 GO、KEGG
生物信息·kegg