001、测试数据
[b20223040323@admin1 test]$ ls x_gather_pav.txt [b20223040323@admin1 test]$ cat x_gather_pav.txt ## 测试数据;每一行是一个个体;每一列是一个基因;矩阵中的0表示基因在这个个体中缺失, 1表示基因在这个个体中存在 0 1 1 1 1 0 1 0 0 0 ## 计算基因存在频率的出发点就是基因在群体中存在的个体数除以样本总数,基于awk数组可以显著提高运算速度! 0 1 1 1 1 0 1 0 0 0 0 1 1 1 1 0 1 0 0 0 0 1 1 1 1 0 1 0 0 0 0 1 0 1 1 0 1 0 0 0 0 1 0 1 1 0 0 0 0 0 0 1 0 1 1 0 0 1 0 0 0 1 0 1 1 0 0 1 1 0 0 1 0 0 1 0 0 1 1 1 0 1 0 0 1 0 0 1 1 1
002、计算如下:
[b20223040323@admin1 test]$ ls x_gather_pav.txt [b20223040323@admin1 test]$ cat x_gather_pav.txt 0 1 1 1 1 0 1 0 0 0 0 1 1 1 1 0 1 0 0 0 0 1 1 1 1 0 1 0 0 0 0 1 1 1 1 0 1 0 0 0 0 1 0 1 1 0 1 0 0 0 0 1 0 1 1 0 0 0 0 0 0 1 0 1 1 0 0 1 0 0 0 1 0 1 1 0 0 1 1 0 0 1 0 0 1 0 0 1 1 1 0 1 0 0 1 0 0 1 1 1 ## awk的列迭代将基因计数累加与ay数组以列为索引的元素中,行迭代实现不同个体的累加;最终对数据元素进行迭代,并除以awk内置变量NR(样本数) [b20223040323@admin1 test]$ awk '{for(i = 1; i <= NF; i++) {ay[i] += $i}} END {for(i = 1; i <= NF; i++) {print ay[i]/NR}}' x_gather_pav.txt ## 统计结果如下 0 1 0.4 0.8 1 0 0.5 0.4 0.3 0.2
。
标签:PAV,基因,admin1,awk,b20223040323,Linux,test,txt From: https://www.cnblogs.com/liujiaxin2018/p/18013793