生信喵 发表于 2022-7-5 16:00:45

datamash

一、软件介绍
      datamash 是 data 和 mash 的组合词语,data 是数据,mash 捣碎和调情的意思,这里边应该翻译捣碎更加贴切。它是一个 GNU 工具,和 Linux 一些基础命令类似,所以可以使用 yum或者 apt 直接安装。这样就可以在命令行中对数据进行各种处理了。那么通常都对数据要做哪些处理呢,最基础的当然就是四则运算:加减乘除,在稍微复杂点就是各种乘方开方取余操作,还有各种统计检验函数,更加复杂的就是分组计算以及数据透视等。可以将其看成一个命令行版本的 R 软件。
      官网:https://www.gnu.org/software/datamash/
      直接使用 apt 或者 yum 工具安装即可。如果不是管理员,可以使用 conda 安装更加方便。
#conda 安装
conda install -y datamash

二、使用案例
# 1 计算1-10的和与平均值
seq 10 | datamash sum 1 mean 1

#2 将数据进行转置
seq 10 | paste - - | datamash transpose
seq 10 | paste - - -| datamash transpose

#3 按列计算,使用不同的语法
seq 100 | paste - - - - | datamash sum 1 sum 2 sum 3 sum 4
seq 100 | paste - - - - | datamash sum 1,2,3,4
seq 100 | paste - - - - | datamash sum 1-4
seq 100 | paste - - - - | datamash sum 1-3,4

#4 调整分隔符
seq 10 | xargs -n 5 |datamash -W sum 2

#5 分组计算频数,根据第二列进行分组。如果计算其他值,只需更换函数就行
cat scores.txt | datamashgroupby 2 count 2

#6 根据第二列进行分组,计算第三列的最大值和最小值
cat scores.txt| datamash --sort groupby 2 min 3 max 3

#6 输出表头
cat scores.txt | datamash --header-out groupby 2 min3 max 3

#7 跳过第一行表头
cat scores_h.txt | datamashgroupby 2 min3 max 3
cat scores_h.txt | datamash--header-in groupby 2 mean 3

#8 使用列名代替列号,设置小数位点
cat scores_h.txt|datamash --headers groupby Major mean Score -R 2

#9 计算频数
cat genes_h.txt | datamash -s -g 3 count 3

#10 就算特异的频数
cat genes_h.txt | datamash -s -g 3 countunique 2
页: [1]
查看完整版本: datamash