【转载】扩增子测序数据标准化——随机重抽样(Subsample)

在扩增子测序数据分析时,需要对每个样本的序列总数做标准化,即通过随机重抽样(subsample,也作resample),使每个样本含有相同数目的序列。标准化的OTU/ASV丰度表是计算alpha多样性、beta多样性(例如PCoA、NMDS排序图)所必需的。建议使用同一套标准化的OTU/ASV丰度表做所有的后续分析。

标准化的策略有两种,一是对原始序列做随机重抽样,二是对OTU/ASV丰度表做随机重抽样。我个人认为策略二更合适,因为从原始序列到最终的OTU/ASV丰度表有多个步骤,质控、嵌合体去除、Singleton去除、线粒体/叶绿体去除 (16S rRNA) 等步骤都会损失一些序列。

网上曾有一个Perl语言编写的脚本叫做daisychopper.pl (原链接已经失效了,目前在网上很难找到),它可以执行上述两种标准化策略,不过有两点小瑕疵:一是由于不必要的检测步骤导致运行速度较慢,二是需要对OTU丰度表进行格式转换才能正确执行策略二。

因此,我后来干脆自己重新写了个Perl脚本去做OTU丰度表的标准化,叫做subsample_in_table.pl,下载方法见本文底部,运算速度快了许多。这个脚本需要使用命令行执行,例如Windows系统的命令提示符(CMD)、Linux和macOS系统的终端。运行脚本时,如果不提供任何参数,会显示脚本的帮助信息(例如全部参数的说明)。当然,电脑上得安装有perl语言,可以从网上下载Strawberry Perl或ActivePerl安装。

该脚本用法如下:

perl subsample_in_table.pl -i [输入文件] -o [输出文件] -s [样本数目] <可选参数>

输入文件每列为样本,每行为物种 (例如OTU、ASV)或功能,额外信息如物种分类可以放在表格的最后几列,输出文件中会保留这些额外信息。需要注意的是,脚本和输入文件需要指定所在路径,如果您不明白路径的用法,可以直接把这个脚本文件和输入文件放在同一目录,在命令行工具中用cd命令进入该目录,再执行上述命令。

-o参数指定输出文件名称,默认为"otu_table_resample.txt"。

可以通过参数-n指定标准化到多少条序列,如果缺省,则按含有最少序列的那个样本计算。

重抽样会导致一些稀有OTU/ASV从全部样本中消失,可以通过参数-z从表格中去除这些OTU/ASV,以免干扰后续分析。

除此之外,另有几个与OTU/ASV丰度表处理有关的脚本,个人认为比较好用,在此一并分享:

1. alpha_diversity.pl

该脚本基于物种丰度表(例如OTU表、ASV表)计算alpha多样性,例如Observed species, Chao1 richness, Shannon diversity, Simpson index, Pielou evenness (均匀度), Good's coverage (覆盖度)等。

输入文件可以是重抽样后的OTU/ASV表,额外信息如物种分类可以放在表格的最后几列。用法如下: 

perl alpha_diversity.pl -i [输入文件] -o [输出文件] -s [样本数目]

2. percent_in_table.pl

该脚本可将包含序列数目的物种丰度表(例如OTU表、ASV表)转化为百分数(不显示%符号)表格。

输入文件可以是重抽样后的OTU/ASV表,额外信息如物种分类可以放在表格的最后几列。用法如下: 

perl percent_in_table.pl -i [输入文件] -n [样本数目]

3. sum_taxa_from_otu_table.pl

该脚本基于物种丰度表(例如OTU表、ASV表)计算每个分类水平的物种总丰度,例如Clostridium属在每个样本中的丰度。 分级的的COG、Subsystems、KO功能表也可以作为输入文件,统计每个功能的丰度。用法如下: 

perl sum_taxa_from_otu_table.pl -i [输入文件] -s [样本数] -D [数据类型] -t [分类等级数] <其他可选参数>

-D: 输入文件的数据类型 (0或1,默认 0),0代表百分比 (不含%,即percent_in_table.pl的输出文件),1代表序列数目 (例如重抽样后的OTU/ASV表)。

-t: 物种分类有几个等级 (水平),默认为6。物种分类请放在输入文件的最后几列,例如界、门、纲、目、科、属六列 (图1),则对应的输出文件是taxa_L1.txt ~ taxa_L6.txt,它们不包含当前分类下的未分类序列丰度(每个样本的总和可能低于100%)。

如果使用参数-a 1,会额外得到taxafull_L1.txt ~ taxafull_L6.txt,它们包含当前分类下的未分类序列丰度(也就是说,每个样本的总和为100%),例如Actinobacteria门下所有分不到纲的序列会汇总为unclassified Actinobacteria。

图1. 带有物种分类信息的OTU表

以上自编Perl脚本可以从GitHub下载:https://github.com/PeterRui/perl4amplicon

如果GitHub打不开,也可以从这篇文章的补充材料下载Data Sheet 2.zip:

Rui J, Zhao Y, Cong N, Wang F, Li C, Liu X, Hu J, Ling N and Jing X (2023) Elevational distribution and seasonal dynamics of alpine soil prokaryotic communities. Front. Microbiol. 14:1280011. doi: 10.3389/fmicb.2023.1280011

原文链接:科学网—扩增子测序数据标准化——随机重抽样(Subsample) - 芮俊鹏的博文

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值