linux 中awk语句统计pav矩阵中基因的存在频率

 

001、测试数据如下:

[root@PC1 test2]# ls
a.txt
[root@PC1 test2]# cat a.txt
1       0       1       0       1       0       1       1
1       1       1       1       1       0       0       0
0       0       1       0       0       0       1       0
0       1       1       0       0       0       1       1

 

以上测试数据中,行为样本,也就是以此为样本1一直到样本4, 列为gene, 矩阵中1表示的是基因的存在, 0表示基因的缺失。

 

002、统计每一个基因在该群体中的存在频率, 实质就是统计每一列中1所占的百分率,这个可以使用awk语句来实现,如下:

复制代码
[root@PC1 test2]# ls
a.txt
[root@PC1 test2]# cat a.txt
1       0       1       0       1       0       1       1
1       1       1       1       1       0       0       0
0       0       1       0       0       0       1       0
0       1       1       0       0       0       1       1
[root@PC1 test2]# for i in {1..8}; do awk -v a=$i '{ay[$a]++} END {print ay["1"]/NR}' a.txt ; done   ## 输出每一个基因存在频率,第一行对应的是第一列的存在频率, 第二行对应的是第二列的存在频率。。。
0.5
0.5
1
0.25
0.5
0
0.75
0.5
复制代码

 

 以上语句中for i in {1..8} 是对1到8的数字的以此迭代,可以换成任意递增的数字。

 

posted @   小鲨鱼2018  阅读(36)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2021-03-10 python中使用任意数量的关键字参数,在形参前添加双*
2021-03-10 python中结合使用位置实参和任意数量实参(收集参数)
2021-03-10 python中传递任意数量的实参 (收集参数)
2021-03-10 python中禁止函数修改列表
2021-03-10 python中使用函数和不使用函数程序的比较
2021-03-10 python中向函数传递列表
2021-03-10 python中将实参变为可选项
点击右上角即可分享
微信分享提示