【R语言】Splatter,一个用于简单模拟单细胞RNA测序数据的R包

Splatter是一个用于模拟单细胞RNA测序数据的R包,本文概述并介绍Splatter的功能

一、参数功能

名称功能说明可以通过splatEstimate函数估计备注
nGenes -> (Genes)基因数量要模拟的基因数量全局参数
nCells -> (Cells)细胞数量要模拟的细胞数量全局参数
seed -> [Seed]随机种子用于生成随机数的种子,包括从分布中选择值。通过更改此值,可以生成具有相同参数的多个模拟数据集。×全局参数
nBatches -> [Batches]批次数模拟中的批次数,这不能直接设置,而是通过控制batchCells来设置。×批次参数
batchCells -> [Batch Cells]每批细胞一个向量,指定每批中的细胞数。批次数 ( nBatches) 等于向量的长度,单元数 ( nCells) 等于总和。×批次参数
batch.facLoc -> [Location]批次因素位置批次影响因素对数正态分布的位置 (mean log) 参数。可以是向量×批次参数
batch.facScale -> [Scale]批次因素尺度表示批量影响因子的对数-正态分布尺度。可以是向量×批次参数
batch.rmEffect移除批处理效果将 batch.rmEffect 设置为 TRUE 会生成一个数据集,该数据集(大约)与 batch.rmEffect 为 FALSE 时相同,但移除了批处理效果。这可以用作评估批量校正的基本事实×批次参数
mean.rate -> (Rate)平均速率平均伽马分布的速率参数。平均参数
mean.shape -> (Shape)平均形状平均伽马分布的形状参数。平均参数
lib.loc -> (Location)库大小位置库大小对数正态分布的位置(均值对数)参数,如果使用正态分布,则为均值参数库大小参数
lib.scale -> (Scale)库大小尺度库大小日志正态分布的比例(sdlog)参数,或使用正态分布时的sd参数库大小参数
lib.norm -> (Norm)库规模分布Splat 模拟中用于库大小的默认(和推荐)分布是对数正态分布。但是,在极少数情况下,正态分布可能更合适。设置lib.norm为TRUE将使用正态分布而不是对数正态分布。库大小参数
out.prob -> (Probability)表达式异常值概率该参数控制基因被选为表达异常值的概率。较高的值将导致更多的异常基因表达式异常值概率
out.facLoc -> (Location)表达式异常值因子位置表达式异常值因子对数正态分布的位置(均值对数)参数。表达式异常值概率
out.facScale -> (Scale)表达式异常值因子尺度表达式异常值因子对数正态分布的比例 (sdlog) 参数。表达式异常值概率
nGroups -> [Groups]组数要模拟的组数。该参数不能直接设置,使用 控制group.prob。×组参数
group.prob -> [Group Probs]组概率一个向量,给出了细胞将被分配到组的概率。向量的长度给出了组的数量 ( nGroups),概率总和必须为 1。调整概率的数量和相对值会改变组的数量和相对大小。×组参数
de.prob -> [Probability]DE概率该参数控制选择基因进行差异表达的概率×差异表达因子参数
de.downProb -> [Down Prob]下调概率选定的 DE 基因可以被下调(因子小于 1)或上调(因子大于 1)。该参数控制所选基因被下调的概率。×差异表达因子参数
de.facLoc -> [Location]DE 因子位置差异表达因子对数正态分布的位置(平均对数)参数。可以是一个向量×差异表达因子参数
de.facScale -> [Scale]DE 因子尺度差异表达因子对数正态分布的尺度(sdlog)参数。可以是一个向量×差异表达因子参数
group.prob复杂的差异表达一个向量,给出了细胞将被分配到组的概率。向量的长度给出了组的数量 ( nGroups),概率总和必须为 1。调整概率的数量和相对值会改变组的数量和相对大小。自己设定组参数
bcv.common -> (Common Disp)普通BCV参数控制数据集中所有基因的潜在共同变异性。生物变异系数 (BCV) 参数
bcv.df -> (DoF)BCV 自由度此参数设置 BCV 逆卡方分布中使用的自由度。改变这一点会改变平均表达对基因变异性的影响。生物变异系数 (BCV) 参数
dropout.type -> [Type]丢弃类型此参数确定要模拟的 dropout 效果类型。设置为 "none"表示没有dropout,“ experiment”是全局dropout,"batch"对每个cell使用相同的参数集,"group"对同一batch中的每个cell使用相同的参数,"cell"对每个cell使用不同的参数集。×丢弃参数
dropout.mid -> (Midpoint)丢弃中点dropout逻辑函数的中点参数丢弃参数
dropout.shape -> (Shape)丢弃形状dropout逻辑函数的形状参数丢弃参数
path.from -> [From]路径原点此参数控制微分路径的顺序。group.prob它是一个与给出每条路径的起始位置长度相同的向量。×路径参数
path.nSteps -> [Steps]步数通过使用与用于组生成终点相同的差异表达过程来创建路径。然后使用插值在起点和终点之间创建一系列步骤。此参数控制沿路径的步数,从而控制路径的离散或平滑程度。×路径参数
path.skew -> [Skew]路径倾斜默认情况下,细胞沿路径均匀分布,但有时在分布中引入偏斜很有用,例如,您可能希望模拟具有少量干细胞和许多分化细胞的场景。设置 path.skew为 0 意味着所有单元格都来自终点,而高达 1 的更高值将使它们向起点倾斜。×路径参数
path.nonlinearProb -> [Non-linear]非线性概率大多数基因沿路径以线性方式插入,但实际上可能并非总是如此。例如,很容易想象一个基因在过程开始时低表达,中间高表达,最后又低表达。该path.nonlinearProb参数控制基因沿路径以非线性方式变化的概率。×路径参数
path.sigmaFac -> [Sigma Factor]路径倾斜沿路径的非线性变化是通过在两个端点之间建立布朗桥来实现的。布朗桥是以固定端点的方式控制的布朗运动。该path.sigmaFac参数控制布朗运动中每一步的极端程度,因此插值与线性路径的差异有多大。×路径参数

Cell information (colData)

  • Cell–唯一的细胞标识符。
  • Group–细胞所属的组或路径
  • ExpLibSize–该细胞的预期库大小
  • Step (paths only) --每个cell沿路径的距离

Gene information (rowData)

  • Gene–唯一的基因标识符
  • BaseGeneMean–该基因的基本表达水平
  • OutlierFactor–该基因的表达异常因子(1不是异常值)
  • GeneMean–应用异常因子后的表达水平。
  • DEFac[Group] --特定组中每个基因的差异表达因子(1不差异表达)
  • GeneMean[Group] --应用差异表达因子后特定组中基因的表达水平

Gene by cell information (assays)逐细胞基因信息(分析)

  • BaseCellMeans–根据预期库大小调整每个细胞中的基因表达
  • BCV–每个细胞中每个基因的生物变异系数
  • CellMeans–每个细胞中针对BCV调整的基因表达水平
  • TrueCounts–dropout前的模拟计数

二、六种模拟

Splatter中提供了六种不同的模拟。每模种拟都有其自己的前缀,该前缀提供了与该模拟相关联的函数的名称。例如,简单模拟的前缀是simple,因此它会将其参数存储在一个SimpleParams对象中,该对象可以使用newSimpleParams()创建,也可以使用simpleEstimate()从实际数据中估计。要使用该模拟来模拟数据,您可以使用simpleSimulate()。每次模拟返回一个SingleCellExperient对象,其中间值与splatSimulate()返回的值类似

(1)Simple模拟
负二项分布是用于模拟RNA序列计数数据的最常见分布,简单模拟是这种方法的基本实现。使用伽马分布模拟每个基因的平均表达水平,使用负二项分布根据这些平均值生成每个细胞的计数,并使用固定的离散参数,该模拟主要作为基线参考,并不打算准确再现scRNA序列数据的许多特征。

(2)Lun模拟
发表在“Pooling across cells to normalize singlecell RNA sequencing data with many zero counts”中,Lun 模拟建立在简单模拟的基础上,为每个细胞添加比例因子。细胞因子是从均值为 1、方差为 0.5 的正态分布中随机抽取的。 inverse-log2 转换因子用于调整基因均值,从而产生一个矩阵,其中每个细胞具有不同的均值。这代表了缩放标准化旨在消除的技术效果。然后使用均值矩阵从负二项分布中采样计数,具有固定的离散参数。该模拟还可以对具有固定倍数变化的多组之间的差异表达进行建模。

(3)Lun2模拟
在 “Overcoming confounding plate effects in differential expression analyses of single-cell RNA-seq data” 中,Lun和Marioni从Lun模拟扩展了负二项式模型。此模拟从真实数据中采样输入参数,而从统计分布中很少进行随机采样。在Lun 2模拟中,细胞因子被库大小因子替换,并且通过包括批处理效应因子来增加额外的变化水平。虽然文库大小因子作用于单个细胞,但批次效应适用于同一批次的细胞组。因此,当数据中存在已知的批处理效果 (例如,Fluidigm C1板效果) 时,该模拟高度特定于场景。可以在两组批次之间添加差异表达式,并且用户可以选择使用零膨胀负二项式 (ZINB) 模型。使用库大小和板因子调整后的基因均值以及从实际数据获得的基因逐基因离散度估计值,从负二项式模拟计数。如果选择ZINB模型,则使用基因均值和分散度的零膨胀估计值。然后,根据数据中观察到的零的基因比例,再进行一个附加步骤,将一些计数随机设置为零。

(4)scDD模拟
scDD 包旨在测试两组细胞之间的差异表达,以及更复杂的变化,例如差异分布或差异比例 。 这反映在 scDD 模拟中,它可以包含模拟为具有不同分布或不同比例的基因混合,其中基因的表达是多模态的。 该模拟还从真实数据集中采样信息。 由于 scDD 模拟旨在重现高质量的过滤数据集,因此它仅从具有少于 75% 零的基因中采样。 因此,它只模拟相对高表达的基因。 Splatter 包只是为 scDD 包中的模拟功能提供包装器功能,同时捕获与其他模拟进行比较所需的必要输入和输出。

(5)BASiCS 模拟
BASiCS 包引入了一个模型,用于根据外部尖峰控制的表达将 scRNA-seq 数据中的变化分离为生物和技术组件。 该模型还可以实现细胞特异性标准化,并扩展到检测细胞组之间的差异表达。 与 scDD 模拟类似,Splatter 为 BASiCS 模拟功能提供了一个包装器,它能够生成包含内源性和掺入基因以及多批次细胞的数据集。 由于 BASiCS 模拟包含生物学和技术变异,因此可用于测试方法区分两者的能力。

(6)Splat 模拟
Splat模拟,以捕捉在真实的scRNA序列数据中观察到的许多特征,包括高表达的异常基因、细胞间不同的测序深度(库大小)、趋势基因离散和零膨胀。我们的模型使用参数分布,并根据真实数据估计超参数(图1)。Splat模拟的核心是伽马-泊松层次模型,其中每个基因的平均表达水平i,i∈{1;:;N}、 根据伽马分布和每个单元的计数j,j∈{1;:;M}、 随后从泊松分布中采样,并进行修改,以包括表达式异常值和强制执行均值-方差趋势。

我们比较了基因均值、方差、库大小和均值-方差关系。从这些诊断图中,我们可以评估每次模拟再现真实数据集的效果以及它们之间的差异。跨模拟比较的一种方法是查看总体分布(图备选地,我们可以选择一个参考(在这种情况下是真实数据)并查看与该数据的偏离(下图,右列)。检查跨基因的平均表达水平,我们看到scDD模拟缺少低表达基因,正如预期的一样,正如伦模拟一样。相反,Simple和Lun 2模拟偏向低表达水平(下图a, b) 。BASiCS模拟和Splat模拟是很好的匹配。这两种版本的Lun 2模拟都产生了一些高度可变的基因,这种效应在Lun模拟中也表现得较小。方差的差异反映在平均-方差关系中,其中对于该数据集,来自Lun 2模拟的基因在高表达水平上变化太大。库大小是模拟与实际数据不同的另一个方面。不包含库大小组件(Simple、LUN、scDD)的模拟具有不同的中值库大小和更小的差值。在这个例子中,BASiCS模拟产生了太多的大库大小,而Lun2模拟在较小程度上也是如此。
在这里插入图片描述

在这里插入图片描述

  • 7
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值