DEsingle
R包是用来做什么的单细胞RNA-seq (scRNA-seq)数据的差异表达(DE)分析.它将在scRNA-seq原始读取计数矩阵中检测两组细胞之间差异表达的基因。
DEsingle
采用零膨胀负二项模型进行微分表达式分析。通过估计真实零和退出零的比例,它不仅可以检测DE基因以更高的精度但也细分了三类具有不同调节和功能机制的差异表达.
如需更多资讯,请参阅手稿通过苗准,邓珂,王小沃,张学功.
如果你使用DEsingle
在已发表的研究中,请引用:
苗准,邓珂,王小沃,张学功(2018)。DEsingle用于检测单细胞RNA-seq数据中的三种差异表达。生物信息学,bty332。10.1093 /生物信息学/ bty332。
安装DEsingle
从Bioconductor:
如果(!需要(BiocManager)) install.packages(“BiocManager”)BiocManager::安装(“DEsingle”)
安装发展版本从GitHub:
if(!require(devtools)) install.packages("devtools") devtools::install_github(" miaozhul /DEsingle", build_vignettes = TRUE)
加载已安装的DEsingle
R:
库(DEsingle)
DEsingle
有两个输入:计数
而且集团
.
输入计数
是一个scRNA-seq原始读计数矩阵或者一个SingleCellExperiment
对象,该对象包含读取计数矩阵。矩阵的行是基因,列是细胞。
其他的输入集团
是否有一个因子的向量,它指定矩阵中要比较的两组,对应于计数
.
用户可以加载测试数据DEsingle
通过
库(DEsingle)数据(TestData)
玩具的数据计数
在TestData
是一个scRNA-seq读取计数矩阵,它有200个基因(行)和150个细胞(列)。
dim(counts) #> [1] 200 150 counts[1:6, 1:6] #> E3.46.3383 E3.51.3425 E3.46.3388 E3.51.3423 E3.46.3382 E3.51.3423 E3.46.3382 E3.49.3407 #> BTG4 22 0 12 26 00 0 #> GABRB1 00 00 00 #> IL9 00 00 00 #> TAPBPL 20 51 0 2 #> KANK4 00 00 00 #> CPSF2 12 0 95 0 5 115
的对象集团
在TestData
是否有两层且长度等于列号的因子向量计数
.
长度(组)#> [1]150 summary(组)#> 1 2 #> 50 100
下面是一个要运行的示例DEsingle
读取计数矩阵输入:
#加载库和DEsingle库的测试数据(DEsingle)数据(TestData) #指定要比较的两组#第一组和第二组的样本数量分别为50和100组<-因子(c(rep(1,50), rep(2,100))) #检测DE基因结果<- DEsingle(counts = counts, group = group) #在FDR < 0.05结果阈值下将DE基因分为3类。分类<- DEtype(结果=结果,阈值= 0.05)
的SingleCellExperiment
类是一个广泛使用的S4类,用于存储单细胞基因组数据。DEsingle
也可以把SingleCellExperiment
数据表示作为输入。
下面是一个要运行的示例DEsingle
与SingleCellExperiment
输入:
#将DEsingle中的测试数据转换为singlecellexperexperiment中的数据表示sce <- singlecellexperexperiment (assays = list(counts = as.matrix(counts)))) #指定要比较的两组#第一组和第二组的样本数量分别为50和100 group <- factor(c(rep(1,50)),#在FDR < 0.05结果阈值处将DE基因分为3类。分类<- DEtype(结果=结果,阈值= 0.05)
DEtype
细分了DE基因DEsingle
分为3种类型:DEs
,DEa
而且度
.
DEs
是指“不同的表达状态”.是基因类型在两组中实零比例有显著差异,而在其他细胞中无显著差异。
DEa
是为“微分表达丰度”,是指在实零比例无显著差异的组间表达显著差异的基因。
度
或“一般微分表达式”指两组在实零比例和表达丰度上均有显著差异的基因。
的输出DEtype
为DE分析结果矩阵,行为基因,列为如下项:
theta_1
,theta_2
,mu_1
,mu_2
,size_1
,size_2
,prob_1
,prob_2
:第1组和第2组零膨胀负二项分布参数的最大似然误差。total_mean_1
,total_mean_2
:第1组和第2组读取次数的平均值。foldChange
: total_mean_1 / total_mean_2。norm_total_mean_1
,norm_total_mean_2
:第1组和第2组归一化读计数的平均值。norm_foldChange
: norm_total_mean_1 / norm_total_mean_2。chi2LR1
: H0的假设检验卡方统计量。pvalue_LR2
: H20假设检验的P值(用于确定DE基因的类型)。pvalue_LR3
: H30假设检验的P值(用于确定DE基因的类型)。FDR_LR2
:用Benjamini & Hochberg的方法调整pvalue_LR2的P值(用于确定DE基因的类型)。FDR_LR3
:用Benjamini & Hochberg的方法调整pvalue_LR3的P值(用于确定DE基因的类型)。pvalue
: H0假设检验的P值(用于判断一个基因是否是DE基因)。pvalue.adj.FDR
:利用Benjamini & Hochberg方法调整H0的pvalue的P值(用于判断一个基因是否为DE基因)。备注
:异常程序信息的记录。类型
: DE基因类型。DEs表示差异表达式状态;DEa表示差分表达式丰度;度表示一般微分表达式。状态
: DE基因状态,向上代表上调;下来代表下调。从输出的基因中提取显著差异表达的基因DEtype
(注意,在此步骤中使用的FDR阈值应该与前面的相同DEtype
):
#在FDR < 0.05阈值处提取DE基因。sig <- results.classified[results.classified$pvalue.adj.]FDR < 0.05,]
进一步分别提取三种DE基因:
#分别提取三种DE基因的结果。DEs<- results.sig[results.sig$Type == "DEs", ] results.DEa <- results.sig[results.sig$Type == "DEa", ] results.DEg <- results.sig[results.sig$Type == "DEg", ]
DEsingle
集成并行计算功能BiocParallel
包中。用户可以设置平行= TRUE
在功能上DEsingle
启用并行化,并将BPPARAM
参数。
#在并行化结果中检测DE基因<- DEsingle(counts = counts, group = group, parallel = TRUE)
高级用户可以使用BiocParallelParam
对象从包BiocParallel
填写BPPARAM
参数指定要使用的并行后端及其配置参数。
Unix和Mac用户的最佳选择是使用MulticoreParam
配置多核并行后端。
#加载库库库(DEsingle)库(BiocParallel) #设置参数并注册要使用的后端param <- MulticoreParam(workers = 18, progressbar = TRUE) register(param) #用18个核并行检测DE基因结果<- DEsingle(counts = counts, group = group, parallel = TRUE, BPPARAM = param)
对于Windows用户,使用SnowParam
配置Snow后端是一个很好的选择:
#加载库库库(DEsingle)库(BiocParallel) #设置参数并注册要使用的后端param <- SnowParam(workers = 8, type = "SOCK", progressbar = TRUE) register(param) #用8个核并行检测DE基因结果<- DEsingle(counts = counts, group = group, parallel = TRUE, BPPARAM = param)
看到参考手册的BiocParallel
包的详细信息BiocParallelParam
类。
用户可使用热图()
函数统计数据
或heatmap.2
函数gplots
绘制DEsingle发现的DE基因的热图,正如我们在图S3中所做的手稿.
使用browseVignettes(“DEsingle”)
看…的小片段DEsingle
安装后在R。
使用R中的以下代码访问帮助文档DEsingle
:
# DEsingle的文档
#文档DEtype
# document for TestData ?TestData ?counts
也欢迎你浏览和发帖DEsingle标签的问题DEsingle生物导体支持站点或通过电子邮件联系作者寻求帮助。
sessionInfo() #> R version 4.2.0 RC (22-04-19 r82224) #>平台:x86_64-pc-linux-gnu(64位)#>运行在:Ubuntu 20.04.4 LTS #> #> Matrix products: default #> BLAS: /home/biocbuild/bbs-3.15-bio /R/lib/libRblas. #因此#> LAPACK: /home/biocbuild/bbs-3.15-bio /R/lib/libRlapack。so #> #> locale: #> [1] LC_CTYPE=en_US。UTF-8 LC_NUMERIC= c# > [3] LC_TIME=en_GB LC_COLLATE= c# > [5] LC_MONETARY=en_US。utf - 8 LC_MESSAGES = 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_IDENTIFICATION= c# > #>附加的基包:#> [1]stats graphics grDevices utils datasets methods base #> #>其他附加的包:#> [1]DEsingle_1.16.0 #> #>通过命名空间加载(并没有附加):#> [1] bslib_0.3.1 compiler_4.2.0 jquerylib_0.1.4 #> [7] digest_0.6.29 jsonlite_1.8.0 evaluate_0.15 #> [10] nlme_1 -157 lattice_0.20-45 rlang_1.0.2 #> [13] Matrix_1.4-1 cli_3.3.0 maxLik_1.5-2 #> [16] yaml_2.3.5 parallel_1 .2.0 mvtnorm_1.1-3 #> [19] xfun_0.30 fastmap_1.1.0 gamlss.data_6.0-2 #> [22] string_1 .4.0 knitr_1.38 generics_0.1.2 #> [28] R6_2.5.1 bdsmatrix_1.3-4 dingval_3 .3-1 #> [31]BiocParallel_1.30.0 VGAM_1.1-6 rmarkdown_2.14 #> [34] magrittr_2.0.3 gamlss_5.4-3 htmltools_0.5.2 #> [37] MASS_7.3-57 splines_4.2.0 bbmle_1.0.24 #> [40] numdriver_2016.8 -1.1 sandwich_3.0-1 stringi_1.7.6 #> [43] pscl_1.5.5 zoo_1.8-10