Archives

otutable-utils之计算OTU表汇总信息-otutable_summary和otutab_stats

本文介绍otutable-utils系列的一个小工具:otutab_summary (Github 链接 ), 就是计算OTU表中每个样本的OTU数和tag数,支持未注释的OTU表。

1. 命令行接口 $ otutable_summary Usage: otutable_summary <otutab> version: 0.0.1 2. 命令行接口 otutable_summary OTU_table.txt >OTU_table.summary.txt 3. 其它实现

3.1 otutab_stats

otutab_stats 是 Usearch 的命令行工具,接口也比较简单

usearch -otutab_stats OTU_table.txt -output OTU_table.report.txt

该程序对整个OTU表中样本进行统计分析, 示例结果如下:

1624812 Reads (1.6M) 27 Samples 3565 OTUs 96255 Counts 44360 Count =0 (46.1%) 14975 Count =1 (15.6%) 14774 Count >=10 (15.3%) […]

扩增子数据分析之标准化:抽样 or 还是标准化?

扩增子测序数据会遇到样品之间数据量相差很大的情况,这是可能有数据抽平或者数据标准化概念,从技术上可认为有以下操作的方式:

1. 针对序列文件进行抽样,可以是原始测序文件,也可以是合并后的双端序列; 2. 针对OTU表进行标准化; 3. 采用DESeq2进行对原始数值进行标准化。

下面仅仅从技术操作上进行描述:

1. 序列文件进行抽样

使用seqtk samples 对原始数据进行抽样, 操作很简单:

seqtk sample -s 11 OS2_1.R1.fq.gz 5000 > OS2_1.R1.5000.fq.gz seqtk sample -s 11 OS2_1.R2.fq.gz 5000 > OS2_1.R2.5000.fq.gz

采用相同的seed值, 可以保证可重复,也可以保证R1和R2序列抽样结果可以对应。

针对合并后后序列也是同样操作:

seqtk sample -s 11 merged.fq 5000 > merged.5000.fq

这种策略虽然在概念上对数据进行重新抽样,但是会对构建OTU表构成影响,比如会人为丢掉低丰度序列, 不管uparse或者unoise对丰度都有最低需求, Uparse构建的OTU表会丢掉size<2的序列, unoise 参数默认会设置 <4个。

2. OTU表进行标准换

通常我们使用相对丰度(OTU频率表)进行描述数据,这样可以不用去考虑每个样本的测序量的大小,但是还是可以将所有的序列数(Tags数)映射到统一的测序量上,比如30000条, 可以保证相互丰度不变的情况下对数据进行标准化,该数值会对基于counts 数的计算有影响, 比如多样性指数计算等。 该操作可以通过USEARCH otutab_norm进行计算:

[…]

扩增子测序分析之多样性指数:beta 多样性

1. beta多样性介绍

Beta Diversity是对不同样品间的微生物群落构成进行比较,根据样本的OTUs丰度信息计算各种距离测度: 比如 Bray Curtis,Weighted UniFrac和Unweighted UniFrac等来评估不同样品间的微生物群落构差异。

Bray Curtis : 距离是生态学上反应群落之间差异性最常用的指标,只考虑了物种的丰度信息。 Unweighted UniFrac : 距离是基于物种(即OTUs)系统发生树进行计算的样本间的距离,只考虑了物种的有无。 Weighted UniFrac : 距离是结合OTUs的丰度信息和物种系统发生树的信息来获得的样本间的距离。

Unweighted UniFrac距离对稀有物种比较敏感,而Bray Curtis和Weighted UniFrac距离则对丰度较高的物种更加敏感,beta多样性主要反映在如何度量距离的概念。

2. 距离测度

距离的测度主要有两种形式:phylogenetic 多样性指数 和Non-phylogenetic多样性指数:

a. NON-phylogenetic 多样性指数,主要有Bray Curtis/Jaccard/euclidean等。 b. Phylogenetic 多样性指数,主要Unweighted UniFrac和weighted UniFrac

公式描述形式使用 Usearch beta diversity metric 描述。

2.1 Bray Curtis

Bray–Curtis dissimilarity, 参考wikipedia,公式很简单:

即:

Bray-Curtis = […]

扩增子数据分析之稀释曲线: alpha_div_rare 和 alpha-rarefaction

1.稀释曲线介绍

Rarefaction Curve即稀释曲线,是从样品中随机抽取一定测序量的数据,统计它们所代表物种数目(也即是OTUs数目)或多样性指数,以数据量与物种多样性来构建的曲线,以用来说明样品的测序数据量是否合理,并间接反映样品中物种的丰富程度。稀释性曲线图中,当曲线趋向平坦时,说明测序数据量渐进合理 如下图所示: 蓝色趋于饱和, 红色还一直在增加。

2.usearch alpha_div_rare

Usearch 提供了alpha_div_rare (cmd_alpha_div_rare)命令进行对OTU表进行subsampling 和计算多样性指数。 支持命令行参数:

-metric :支持的多样性指数: berger_parker、buzas_gibson、chao1、 dominance、equitability、jost、jost1. reads、richness(默认)、robbins、simpson shannon_e、shannon_2、shannon_10 -method :抽样方法,支持fast(默认), with_replacement和without_replacement。 -output :输出文件; -iters : with_replacement和without_replacement subsampling方式支持迭代数并计算平均数,并转换成最近整数。

实例:

usearch -alpha_div_rare otutab_norm.txt –method fast –metric shannon_e -output rare.txt

具体选择哪种subsample方法,结果都差不多。

USEATCH的稀释曲线和QIIME稀释曲线不同,QIIME使用counts数subsampling , Usearch使用百分比subsampling,这样的好处是所有样本都会被采样到,但是横坐标的subsampling数目不一样,会根据样本序列数目变化。

3.QIIME2 alpha-rarefaction

qiime2 数据分析流程通过 qiime diversity接口提供了分析alpha多样的各种命令: alpha-rarefaction 支持的参数:

–i-table : FeatureTable –p-max-depth: […]

OTU表子集操作:otutable_subset 和 otutable_subsamples

otutable_subset 和 otutable_subsamples 程序设计的目的是解决获取OTU表子集的操作方式, 比如:

1. 提取给定OTU,并按照指定顺序生成新的OTU; 2. 提取特定样本,并按照特定顺序生成新的OTU; otutable_subset

Usearch 的 otutab_otu_subset 可以完成类似的事情, 但是不能很好解决一些问题, 比如不支持带有注释的OTU表,支持streaming 模式。

命令行接口:

$ otutable_subset Usage: otutab_subset [options] <otu-table> Options: -r reorder the OTUs by OTUs in list -v print version number

默认按照 OTU表中出现的顺序输出, 如指定 -r 可选项可以按照输入文件顺序。

实例:

文件 otu_ids.txt 为我们需要提取的OTU列表:

OTU_2 OTU_1 OTU_3

命令

otutable_subset -r otutable_counts_ann.txt otu_ids.txt otutable_subset […]

OTU表过滤操作:otutable_filter

otutable_filter程序主要实现了对OTU表中的丰度信息进行过滤,比如过滤符合一定规则的OTU(比如丰度和小于设定阈值)。

命令行接口:

$ otutable_filter Usage: otutable_abundance [options] <otu-table> <cutoff:2> Options: -v print version number

程序接受两个参数, OTU表和设置阈值,支持未注释的OTU表和注释的OTU表。

实例

otutable_filter otutable_freq.txt 0.1

过滤掉特定OTU(所有的样本相对丰度和小于0.1)的OTU。

本文材料为 BASE (Biostack Applied bioinformatic SEies ) 课程 Linux Command Line Tools for Life Scientists 材料,版权归 上海逻捷信息科技有限公司 所有。

Last Upate: 2017/10/21 18:51

生成不同水平系统分类丰度表:otutable_abundance 和 otutable_level

这篇文章介绍 otutable_abundance 和 otutable_level, 对注释的OTU表统计不同系统分类水平丰度信息表, 支持OTU频数表和相对丰度表,注释信息按照单字母缩写模式:

比如:d:Bacteria,p:Cyanobacteria/Chloroplast,c:Chloroplast,f:Chloroplast,g:Streptophyta

1. otutable_level

命令行接口

$ otutable_level Usage: otutable_level [options] <otu-table:annotated> Options: -l taxonomy level in [dkcofgs] Default:[‘g’] -v print version number

通过 -l 指定分类水平, 默认是 genus 水平,映射表如下:

k Kingdom o Order d Domain f Family p Phylum g Genus c Class s Species

程序接口简单接受一个参数: OTU注释表。

实例

otutable_level -l g […]

OTU表生成 Krona 输入文件:otutable_krona

这篇文章介绍如何根据注释的 OTU Table 进行 Krona 可视化

1. Krona介绍

Krona是一种基于HTML5的交互式数据可视化方式,兼容大部分现代浏览器,比如 Chrome,Firefox,IE等。

参考文件:Interactive metagenomic visualization in a Web browser Github仓库地址: Krona: Interactively explore metagenomes and more from a web browser.

KronaTools 可本地安装,并包含各种程序进行导入不同工具的输出结果,比如:RDP、BLAST、MEGAN等, Krona的各种使用我们通过另外一篇文章进行描述,现在主要使用Krona的基本功能。 ktImportText

主要命令行接口:

$ ktImportText ktImportText \ [options] \ text_1[,name_1] \ [text_2[,name_2]] \ … [-o <string>] Output file name. [Default: ‘text.krona.html’] [-n <string>] Name […]

对OTU表进行注释:otutable_annotation

这篇文章介绍小工具 otutable_annotation, 这个工具设计比较通用,可以对 usearch sintax 或者 usearch utax 、RDP、 DADA2的分类结果进行OTU, 不过需要需要一些适配器才能完成工作,下面介绍如何结合其它工具完成各种OTU表注释。

1. 输入文件格式:

OTU表格式为标准QIIMME OTU 表格式, 包含以 # 开头的注释行;

#OTU ID F_5 F_6 F_7 F_8 OTU_1 1763 8408 1420 2674 OTU_2 1582 7132 1234 2317 OTU_3 0 10 1 15

注释文件需要这样格式:

OTU_1 d:Bacteria,p:Cyanobacteria/Chloroplast,c:Chloroplast,f:Chloroplast,g:Streptophyta

我们可以通过特定适配器灵活完成注释。

otutable_counts.txt OTU表; otu.sintax.txt sintax分类结果; otu.rdp.txt 分类结果; dada2.taxa.txt 分类结果;

2. 命令行接口:

$otutable_annotation […]

计算OTU表相对丰度:otutable_freq

本文介绍otutable-utils系列的一个小工具:otutable_freq (Github 链接 ), 就是计算OTU表的相对丰度(频数转频率).

1. 命令行接口 $ otutable_freq Usage: otutable_freq <matrix> version 0.0.2 2. 命令行接口 otutable_freq otutable_counts.txt >otutable_freqs.txt 3. 其它实现

3.1 otutab_counts2freqs

otutab_counts2freqs 是 Usearch 9.2 版本才加入的命令行工具,接口也比较简单

usearch -otutab_counts2freqs otutable_counts.txt -output otutable_freqs.txt

本文材料为 BASE (Biostack Applied bioinformatic SEies ) 课程 Linux Command Line Tools for Life Scientists 材料, 版权归 上海逻捷信息科技有限公司 所有.

Last Upate: 2017-10-18 […]