1摘要

扳手是宏基因组计数数据的归一化技术。虽然主要是为宏基因组实验中的稀疏16S计数数据开发的,但它也可以应用于其他稀疏技术的归一化计数数据,如单细胞RNAseq,功能性微生物组等。

给定(a)组织为特征(OTUs,基因等)x样本的计数数据,以及(b)与样本相关的实验组标签,Wrench为每个样本输出一个归一化因子。通过将每个样本的计数除以其归一化因子,对数据进行归一化。

手稿可以在这里访问:https://www.biorxiv.org/content/early/2018/01/31/142851

2简介

DNA测序的一个不必要的副作用是观察到的计数只保留相对丰度/表达信息。在实验条件/组之间比较这种相对丰度(例如,用差异丰度分析)可能会导致问题。具体来说,当存在绝对丰度差异丰富的特征时,真正未受扰动的特征可以被识别为差异丰富。常用的技术,如稀疏/子抽样/除以总计数和这些方法的其他变体,不适合这个问题。扳手的开发是为了解决这个问题,从相对丰度重建基于一些常用的假设在基因组学。

在这里提出的手稿的介绍部分:https://www.biorxiv.org/content/early/2018/01/31/142851从上面的观点提供了一些关于各种常用归一化技术的观点,我们建议通读它。

3.安装

下载包。

如果(!requireNamespace("BiocManager", quiet = TRUE)) install.packages("BiocManager") BiocManager::install("扳手")

或者从Github安装开发版本的包。

BiocManager:安装(“HCBravoLab /扳手”)

加载包。

库(扳手)

4运行的扳手

下面,我们将提供一个快速教程,其中传递计数数据和分组信息以生成组合因子和归一化因子。任何可选参数的详细信息都可以通过输入“?”扳手”在R端子窗口。

#从metagenomeSeq包data(mouseData)中的小鼠微生物组数据中提取计数和分组信息
## mreexperiment (storageMode: environment) ## assayData: 10172个特征,139个样本##元素名称:计数## protocolData: none ##表型数据## sampleNames: PM1:20080107 PM1:20080108…PM9:20080303 (139 total) ## varLabels: mouseID date…status (5 total) ## varMetadata: labelDescription ## featureData ## featureNames: Prevotellaceae:1 Lachnospiraceae:1…##副弧菌:956(共10172)## fvarLabels:超级王国门…OTU (7 total) ## fvarMetadata: labelDescription ##实验数据:使用'实验数据(对象)' ##注释:
计数<- MRcounts(mouseData, norm=FALSE) #获取计数计数[1:10,1:2]
## PM1:20080107 PM1:20080108普雷votellaceae:1 00 ## Lachnospiraceae:1 00 ##未分类筛选:1 00 ## Clostridiales:1 00 ## Clostridiales:2 00 ##厚壁菌门:1 00 ## PeptostreptococcaceaeIncertaeSedis:1 00 ## Clostridiales:3 00 ## Lachnospiraceae:7 00 ## Lachnospiraceae:8 00 0
group <- pData(mouseData)$diet #获取组/条件矢量头(组)
##[1]“bk”“bk”“bk”“bk”“bk”“bk”“bk”“bk”“bk”
#运行扳手默认W <-扳手(计数,条件=组)comtionalfactors <- W$ccf normalizationFactors <- W$nf head(comtionalfactors) #每个样本一个因素
## pm1:20071211 pm1:20071217 ## 0.7540966 0.8186825 1.0423187 1.2690286 0.7860119 1.3059309
head(normalizationFactors) #每个样本一个因子
## pm1:2008011 pm1:20080121 pm1:20071217 ## 0.3364660 0.7051424 1.3295084 0.8530978 0.7545386 2.1273695

4.1用于差分丰度管道

下面介绍了最常用工具的上述标准化因素。

#——如果使用metagenomeSeq normalizedObject <- mouseData #mouseData已经是一个metagenomeSeq对象normFactors(normalizedObject) <- normalizationFactors #——如果使用edgeR,我们必须传入组成因子edgerobj <- edgeR::DGEList(counts=counts, group = as.matrix(group), norm。——如果使用DESeq/DESeq2 DESeq . factors= comtionalfactors) #obj <- DESeq2::DESeqDataSetFromMatrix(countData = counts, DataFrame(group), ~ group)
##将计数转换为整数模式
deseq.obj
##类:DESeqDataSet ## dim: 10172 139 ##元数据(1):版本## assays(1):计数## rownames(10172): Prevotellaceae:1 Lachnospiraceae:1…布兰蒂拉:103 ##副弧菌:956 ##行数据名称(0):## colnames(139): PM1:20080107 PM1:20080108…PM9:20080225 PM9:20080303 ## colData名称(1):组
sizeFactors(deseq.obj) <- normalizationFactors

5一些注意事项/工作正在开发中

扳手目前仅为分类组标签实现策略。虽然对连续协变量的扩展仍在开发中,但您可以通过离散化/分割它们来从连续协变量中创建因子/水平(无论您认为如何合理)。

time <- as.numeric(as.character(pData(mouseData)$relativeTime))Levs <- cut(time, breaks = c(0,6,28,42,56,70)) overall_group <- paste(group, time.)levs) #合并时间信息和组信息在一起W <-扳手(计数,条件= overall_group)

6“趋势”选项

在非常低的样本深度和高稀疏性的情况下,人们可能会发现重构的组成因子(扳手返回的列表对象中的“ccf”条目)和每个实验组中的样本深度(样本的总计数)之间大致呈线性趋势。这可能是由于大量的零影响了向下方向的抽样比例的平均估计。现有的在估计过程中利用零的方法也会受到这个问题的困扰(例如,通过改变“min.mean”参数来改变Scran的丰度过滤也会揭示同样的问题,尽管总的来说,我们发现他们的池化方法对默认的丰度过滤略不敏感)。

如果你发现这种情况发生在扳手重构的组成因素中,如果你可以假设这样做是合理的,你可以使用扳手中的dettrend =T选项(正在进行的工作)来删除组内的这种线性趋势。值得一提的是,即使低样本深度样本的成分因子可以显示这种行为,根据我们的经验,我们经常发现成分因子的群体平均仍然是稳健的。

7会话信息

sessionInfo ()
## R版本4.2.1(2022-06-23)##平台:x86_64-pc-linux-gnu(64位)##运行在Ubuntu 20.04.5 LTS ## ##矩阵产品:默认## BLAS: /home/biocbuild/bbs-3.16-bioc/R/lib/libRblas。/home/biocbuild/bbs-3.16-bioc/R/lib/libRlapack。所以## ## 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_phone = c# # [11] LC_MEASUREMENT=en_US。UTF-8 LC_IDENTIFICATION=C ## ##附加的基本包:## [1]stats4 stats graphics grDevices utils datasets methods ##[8]基础## ##其他附加包:[1] DESeq2_1.38.0 SummarizedExperiment_1.28.0 matrixStats_0.62.0 ## [5] GenomicRanges_1.50.0 GenomeInfoDb_1.34.0 ## [7] IRanges_2.32.0 S4Vectors_0.36.0 ## [9] Wrench_1.16.0 edgeR_3.40.0 ## [11] metagenomeSeq_1.40.0 rcolorbrewer_1 . 1.1-3 ## [13] glmnet_4.1-4 Matrix_1.5-1 ## [15] limma_3.54.0 Biobase_2.58.0 ## [17] BiocGenerics_0.44.0 ## ##通过命名空间加载(并且没有附加):## [10] colorspace_2.0-3 tidyselect_1.2.0 bit_4.0.4 ## [13] compiler_4.2.1 cli_3.4.1 DelayedArray_0.24.0 ## [19] sass_0.4.2 caTools_1.18.2 scales_1.2.1 ## [19] genefilter_1.80.0 string_1 .4.1 digest_0.6.30 ## [22] rmarkdown_2.17 XVector_0.38.0 pkgconfig_2.0.3 ## [25] htmltools_0.5.3 fastmap_1.1.0 rlang_1.0.6 ## [28] RSQLite_2.2.18 shape_1.4.6 jquerylib_0.1.4 ## [31][43] stringi_1.7.8 yaml_2.3.6 zlibbioc_1. 1.3 grid_4.2.1 blob_1.2.3 ## [49] parallel_4.2.1 crayon_1.5.2 lattice_0.20-45 ## [55] KEGGREST_1.38.0 locfit_1. 1.5-9.6 knitr_1.40 ## [58] pillar_1.8.1 geneplotter_1.76.0codetools_0.2-18 ## [61] XML_3.99-0.12 glue_1.6.2 evaluate_0.17 ## [64] png_0.1-7 vctrs_0.5.0 foreach_1.5.2 ## [67] gtable_0.3.1 assertthat_0.2.1 cachem_1.0.6 ## [70] ggplot2_3.3.6 xfun_0.34 xtable_1.8-4 ## [73] survival_4 .4-0 tibble_3.1.8 iterators_1.0.14 ## [76] AnnotationDbi_1.60.0 memoise_2.0.1