除了前面推送介绍的微生物组一键分析功能,LorMe包还配置了一系列独立工具以方便微生物组分析。这些工具主要包括数据过滤(已在【LorMe R包】教程1:微生物组数据清洗、封装与配置介绍使用方法)、配色选择、tb-RDA分析(【LorMe R包】教程6:独立工具介绍(一))、显著性差异检验及快速制图(柱状图、箱线图、小提琴图)。
进行显著性差异检验是科学研究中一项基本且重要的分析方法。这项工作并非简单地使用t检验或ANOVA就能完成,而是需要根据数据的特性、处理分组的数量、数据变量的资料类型以及数据分布(是否满足正态分布和方差齐性)等因素,选择恰当的检验方法。为了更好地理解这一过程,我们使用LorMe统计分析训练营中的一张图来进行步骤概览:
选择合适的显著性差异检验方法是一个系统的工程,本推送不再过多介绍,大家可以自行去了解。从设计理念来说,LorMe包希望大多数使用者可以简单、快捷的完成数据的显著性差异检验。因此,对于大家使用频率最高的单因子连续型数据差异检验,LorMe包内置auto_signif_test这个显著性差异检验工具,专门用于分析一些独立数据,包括表型数据、环境因子数据以及特别关注的某些关键物种在处理组之间的差异。使用者仅需提供数据框并指定标签、数据所在列的位置,该功能即可自动进行前置的数据特征判断并选择合适的显著性差异检验方法,并最终输出包括数据分布(正态分布假定和方差齐性检验结果)、各处理的数据基本特征(均值、中位数、方差和标准误)、显著性检验结果及分析结果报告(默认打印在控制台,也可输出至本地)在内的各项结果。
# 数据准备,下面将展示各类不同的显著性检验及多重比较方式
# 读取棉花产量示例数据, 这是一个经典的coloum table
data("cotton", package = "agricolae") #大家自行安装"agricolae"这个包
### 随机设计两组比较 ###
sig_results <- auto_signif_test(
data = cotton, # 输入数据框
treatment_col = 1, # 分组处理标签在第几列
value_col = 5 # 数值在第几列
)
### 成对设计两组比较###
sig_results <- auto_signif_test(
data = cotton,
treatment_col = 1,
value_col = 5,
paired = TRUE, # 成对设计需指定该参数为TRUE
subject_col = 2 # 配对信息标签在第几列
)
### 随机设计多组比较 ###
sig_results <- auto_signif_test(
data = cotton,
treatment_col = 2,
value_col = 5
)
head(sig_results) # 查看输出结果
### 如不显著则默认不进行多重比较,可选择执行事前检验进行多重比较###
sig_results <- auto_signif_test(
data = cotton,
treatment_col = 2,
value_col = 5,
prior = TRUE # 是否执行事前检验
)
head(sig_results) # 查看输出结果
print(sig_results$basicdata) # 查看统计量汇总
print(sig_results$anova_model) # 提取 ANOVA 模型
print(sig_results$anova_summary) # 查看 ANOVA 汇总
print(sig_results$multiple_comparison_model) # 提取多重比较模型
print(sig_results$comparison_results) # 查看两两比较
print(sig_results$comparison_letters) # 查看显著性字母标记(这个数据框可直接用于ggplot等可视化)
## 指定多重比较方法(注意,不了解多重比较原理请勿随意更改!以免执行错误的检验方式)
sig_results <- auto_signif_test(
data = cotton,
treatment_col = 2,
value_col = 5,
prior = TRUE,
comparison_method = "LSD" # 指定多重比较方法的参数
)
head(sig_results) # 查看输出结果
print(sig_results$comparison_letters) # 查看显著性字母标记
除以上基本使用方式之外,还可选择将报告输出至本地,方便写文章或方案展示时进行回溯。
data("Three_group")
sig_results <- auto_signif_test(
data = Three_group$Groupfile,
treatment_col = 2,
value_col = 4,
prior = TRUE,
"file", # 输出方式改为输出成本地文件 =
"./", # 输出路径,此处选择了当前工作路径 =
"yield_report" # 文件名,不需要后缀 =
)
此时,控制台将不显示分析报告,取而代之的是R语言的工作路径下会出现一个"yield_report.txt"的文件,包含了详细的分析报告。这里我们以这个报告为例,为大家详细解读分析结果(以下为纯文本,请勿以代码形式运行)。
# 数据分布
###Distribution hypothesis####
Passed (P = 0.692 ) # 符合正态分布 :
Passed (P = 0.635 ) # 符合方差齐性 :
# 数据基本特征 (包含处理名、样本数N,均值Mean,标准差Sd和均值标准误SEM)
Treatment_Name N Mean Sd SEM
BF 5 1893.672 79.66296 35.62636
CF 5 1564.200 74.51380 33.32358
OF 5 1691.078 43.61900 19.50701
#ANOVA模型
Df Sum Sq Mean Sq F value Pr(>F)
Between Groups 2 276156.82 138078.412 30.015 2.13812731607719e-05
Residuals 12 55204.44 4600.37
Total 14 331361.26
# 分析结果概览
###Data overview####
###One Way Analysis of Variance begin####
###Statistics on ###Dependent Variable: Yield.kg. ####
# 分析结论
# 此处告诉我们组间有显著差异
###Conclusion####
2.13812731607719e-05 ) =
# 执行的多重比较方法
###Multiple Comparison Procedures####
# 此处告诉我们使用了Bonferroni法进行多重比较
0.05 =
# 多重比较方法的数据矫正情况
###Bonferroni adjusted LSD statistics####
MSerror Df Mean CV t.value MSD
4600.37 12 1716.317 3.951836 2.779473 119.2309
# 组间多重比较结果(两两比较的均值差异、差异的95%CI和校正后p值)
###Comparions on Group ####
diff lwr.ci upr.ci pval
-329.4720 -448.702906 -210.24109 1.707623e-05
-202.5936 -321.824506 -83.36269 1.483805e-03
OF-CF 126.8784 7.647494 246.10931 3.591185e-02
# 显著性字母标记
###Labels####
compare Letters type Mean std n se LCL UCL Min Max Q25 Q50 Q75
BF BF a Group 1893.672 79.66296 5 30.33272 1827.583 1959.761 1811.304 1999.404 1829.916 1878.228 1949.508
OF OF b Group 1691.078 43.61900 5 30.33272 1624.989 1757.168 1655.280 1743.192 1656.072 1667.160 1733.688
CF CF c Group 1564.200 74.51380 5 30.33272 1498.111 1630.289 1441.440 1622.808 1549.152 1590.732 1616.868
注:在某些研究中,会对各组与CK进行差异分析,此时需使用Dunnett检验。本功能将不包括这种特殊用法。该检验的实现代码也比较简单,大家可以自行搜索关键词进行学习。
完成自动的显著性差异检验后,您也许依旧为如何实现美观的可视化图形而烦恼。为此,LorMe包也内置了独立数据组间比较的快捷制图功能。该功能整合上述显著性检验,可直接生成显著性差异检验结果及包括柱状图、箱线图、小提琴图在内的可视化图形。
#我们使用经典的鸢尾花数据
data("iris")
# 一键制图
results=compare_plot(inputframe=iris,
treat_location=5, #第5列为处理标签
value_location=1, #第1列为数值标签
ylab_text = "Sepal Length")
#提取统计量信息
results$Statistics
#提取可视化图像
results$Barplot
results$Boxplot
results$Violinplot
至此,LorMe包的主要功能及教程均已介绍完毕。在发布教程期间,陆续收到了各位LorMe包用户的提问、意见交流及各类BUG反馈,我们也会根据大家的反馈逐步对LorMe工具包进行完善。如果大家有各类疑问、意见和建议,可以在公众号留言或通过notion说明页面添加作者VX进行交流。LorMe工具包的预印本、正式期刊投稿均已提上日程,届时大家就可以进行正常引用了。下一步,我们将进行LorMe包可交互式APP的开发,进一步提升微生物组数据分析的便利性。这里我们先行展示一个整合本文两个功能的即时交互式APP的demo:
以上就是LorMe包内置的另外两个独立工具的使用方法。想要探索丰富的可视化模式、查看其他一键分析使用说明或了解APP开发进度,请访问:
编辑|汪宁褀
排版|陶芷欣
审核|江高飞