Archives

对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
Usage: otutable_annotation <sintax|utax> <otu-table>
version: 0.0.2

3. 各种分类器实例:

3.1 sintax|utax 分类注释

sintax 结果为四列文件, 第四列为序列分类文件;

格式:

第一列:OTU编号     OTU_1
第二列:分类信息(括号包含可信度值)
        d:Bacteria(1.0000),p:Cyanobacteria/Chloroplast(1.0000),c:Chloroplast(1.0000), \
        f:Chloroplast(1.0000),g:Streptophyta(1.0000)       
第三列:strand信息  +
第四列:分类结果,使用了sintax_cutoff进行了过滤;
        d:Bacteria,p:Cyanobacteria/Chloroplast,c:Chloroplast,f:Chloroplast,g:Streptophyta

我们只需要第一列和第四列, 使用 cut 获取目标列;

执行示例:

cut -f1,4 otu.sintax.txt | otutable_annotation - otutable_counts.txt >otutable_counts_ann.txt

3.2 rdp 分类注释

rdp 分类结果格式比较复杂,我们是需要使用 otutable-rdp 完成数据准备; rdp 输出结果:

OTU_1       Root    rootrank    1.0 Bacteria    domain  1.0 Cyanobacteria/Chloroplast   \
            phylum  1.0 Chloroplast class   1.0 Chloroplast family  1.0                 \
            Streptophyta    genus   1.0

otutable-rdp 命令接口:

$ otutable_rdp
Usage: otutab_rdp [options] <text>
Options:
  -c  confidence cutoff Default:[0.8]
  -v  print version number

可以通过:

$otutable_rdp -c 0.8 otu.rdp.txt | head -n 1
OTU_1   d:Bacteria,p:Cyanobacteria/Chloroplast,c:Chloroplast,f:Chloroplast,g:Streptophyta

完成格式化。

结合 otutable_annotation 可以对 OTU 表进行注释

otutable_rdp -c 0.8 otu.rdp.txt | otutable_annotation – otutable_counts.txt >otutable_counts_ann.txt

3.3 dada2 分类注释

DADA2 工作环境是R平台, 在R平台, 可以使用 cbind 合成 丰度表和注释信息,下面介绍下 otutable-dada2 如何转换成,我们需要的格式:

$ otutable_dada2
Usage: otutab_dada2 [options] <text>
Options:
  -i  ignore the title line;
  -v  print version number

DADA2 结果使用下面命令产生:

taxa.fmt <- cbind('#seq'=rownames(taxa), taxa)
write.table(taxa.fmt , "dada2.taxa.txt", sep="\t", quote=F, row.names = F)

为了普适性, 我们包含了表头信息;
格式化处理:

otutable_dada2 -i  dada2.taxa.txt | head

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

Comments are closed.