Archives

多tsv文件组合操作: tabtk_join 和 tabtk_agg

今天介绍两个合并 tsv文件 的工具: tabtk_jointabtk_agg

1. tabtk_join   组合多个文件, key设置为第一列
2. tabtk_agg    指定Key列(可多列)和目标列,将多个文件的目标列合并到同一个文件

下面以下图为示例介绍如何使用tabtk_join和tabtk_agg完成类似操作

tabtk_utiks

一、tabtk_join 表合并操作

我们经典使用场景:

组合不同16S多样性实验的结果(比如不同文章的不同16S分区的物种分类信息),不推荐使用Closed-OTU方式构建新的OTU表, 最合适的方式是单独构建OTU表,然后合并不同水平的分类结果。

命令行接口:

$tabtk_join
Usage: tabtk_join [options] 
Options:
  -p CHAR  placehold for missing value, default: ['-'];
  -v       print version number

可选项:

-p 占位符,数据缺失时使用占位符代替, 数值型可以使用'0', 文本型使用'-'

示例:

$cat A-phylum.txt

#level  F_1 F_2
Fusobacteria    0.001872    0.000248
Firmicutes  0.85635 0.827091
Proteobacteria  0.082811    0.092849
Acidobacteria   0.001045    0.002109
Bacteroidetes   0.004354    0.003442
Above_phylum    0.001915    0.000713
Chloroflexi 0.000044    0.000093
Actinobacteria  0.051158    0.071581
Candidatus_Saccharibacteria 0.000435    0.000372
Gemmatimonadetes    0   0.000031

$tabtk_join -p 0  A-phylum.txt  B-phylum.txt

约定:

文件必须使用'#'作为表注释, 这个是很好的习惯,而且后续所有程序都会默认忽略掉以'#'开头的注释行

二、tabtk_agg 表汇总操作

我们经典使用场景:

tabtk_agg 使用场景更多,比如多做样本数据分析是,单样本分析完,需要对分组样本进行如表数值汇总操作,比如:执行完非冗余基因集合丰度定量,需要合并成多样本表丰度表,这样可以使用tabtk_agg轻松完成。

命令行接口:

$ tabtk_agg
Usage: tabtk_agg [options] [label:text ...]
Options:
  -k STR  the keys fields pattern: 1:2:3, default: [1];
  -t STR  the titles for keys: key_1:key_2:key_3, default: [catalog];
  -c INT  the target column default: [2];
  -p CHAR placehold for missing value: default ['0'];
  -i      ignore the head line;
  -v      print version number

tabtk_agg 命令行接口稍微复杂了点,可选项多点:

-k 指定(组合) 列作为合并的主 key , 默认第一列;
-t 指定(组合) 列的表头,单列默认catalog,如果指定多列作为key,默认使用key_1, key_2 \          
   描述表头,可以显示指定. -k的个数要和-t的个数对应;
-c 汇总目标列,默认使用第二列;
-p 占位符, 填充缺失数据
-i 忽略标题行

大部分情况需样本信息,而结果中一般没有样本名称信息,所以在指定文件的时候需要额外添加一个样本信息。

示例(汇总多个样本kallisto丰度定量结果):

$cat  A-abundance.tsv | head -n 4
target_id       length  eff_length      est_coun
nr_1    309     16.3657 0       0
nr_2    318     17.8465 0       0
nr_3    351     40.6759 0       0

$time  tabtk_agg -i -p 0 -k 1 -t tpm -c 4  A:A-abundance.tsv  B:B-abundance.tsv |  head -n 2
#tpm    A       B
nr_1    0       0

real    0m1.539s
user    0m1.415s
sys     0m0.126s

2秒可以完成100万行列汇总操作;

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

Last Update: 2017-09-25 04:34 PM

Comments are closed.