一、软件介绍
datamash 是 data 和 mash 的组合词语,data 是数据,mash 捣碎和调情的意思,这里边应该翻译捣碎更加贴切。它是一个 GNU 工具,和 Linux 一些基础命令类似,所以可以使用 yum或者 apt 直接安装。这样就可以在命令行中对数据进行各种处理了。那么通常都对数据要做哪些处理呢,最基础的当然就是四则运算:加减乘除,在稍微复杂点就是各种乘方开方取余操作,还有各种统计检验函数,更加复杂的就是分组计算以及数据透视等。可以将其看成一个命令行版本的 R 软件。
官网:https://www.gnu.org/software/datamash/
直接使用 apt 或者 yum 工具安装即可。如果不是管理员,可以使用 conda 安装更加方便。
代码语言:javascript复制#conda 安装
conda install -y datamash
二、使用案例
代码语言:javascript复制# 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 | datamash groupby 2 count 2
#6 根据第二列进行分组,计算第三列的最大值和最小值
cat scores.txt | datamash --sort groupby 2 min 3 max 3
#6 输出表头
cat scores.txt | datamash --header-out groupby 2 min 3 max 3
#7 跳过第一行表头
cat scores_h.txt | datamash groupby 2 min 3 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
写在最后:有时间我们会努力更新的。大家互动交流可以前去论坛,地址在下面,复制去浏览器即可访问,弥补下公众号没有留言功能的缺憾。原地址暂未启用(bioinfoer.com)。
代码语言:javascript复制sx.voiceclouds.cn
有些板块也可以预设为大家日常趣事的分享等,欢迎大家来提建议。