Trio type1 Chr Pos Allele rsID Gene
Sample11 type1 1 11105106 C/T rs2273345 MASP2
Sample11 type1 1 31342388 A/C/* 1:31342388 SDC3
Sample11 type1 1 33402334 GA/G-/++A rs36040674 RNF19B
Sample11 type1 1 38078171 G/+GT/+GTGT rs139353088 RSPO1
Sample11 type1 1 47074774 TCATGGTCTGATGGTCC/T----------------/ACATGGTCTGATGGTCC rs4275405 MOB3C
Sample11 type1 1 50883804 CTT/C--/CT- 1:50883804 DMRTA2
Sample11 type1 1 52947350 TA/++A/T- 1:52947350 ZCCHC11
Sample11 type1 1 84956161 CT/C-/++T rs556742567 RPF1
Sample11 type1 1 114940632 CAA/C--/CA- rs78184484 TRIM33
我知道如何计算列rsID的出现次数。 这是我从@glenn jackman学到的命令,我可以得到每个rsID的计数。
awk '{count[$7]++} END {for (word in count) print word, count[word]}' Nofilter.txt
我想grep整个rsID重复出现的行。
grep if count[word]>3
如何根据当前命令修改命令?
答案 0 :(得分:2)
假设:
data.txt
解决方案:
自gawk 4.0.0:
awk '{a[$7]++;b[$7][c++]=$0}END{for(x in a)if(a[x]>3)for(y in b[x])print(b[x][y])}' data.txt
在gawk 4.0.0之前:
awk '($7 in a){b[$7]=ORS}{c[$7]++;a[$7]=a[$7] b[$7] $0}END{for(x in c)if(c[x]>2)print(a[x])}' data.txt
答案 1 :(得分:0)
为什么不将它管道传输到onClick
以检查事件是否大于3?
awk
这将检查输出并告诉您哪些行出现在您选择的截止值之上。
答案 2 :(得分:0)
如果您的awk
不支持多维数组,则可以尝试使用
$ awk '{k=$7; c[k]++; a[k]=(k in a)?a[k] ORS $0:$0}
END{for(k in c) if(c[k]>3) print a[k]}' file
<强>解释强>
k=$7
将密钥设置为字段7
密钥的c[k]++
递增计数器a[k]=(k in a)?a[k] ORS $0:$0
追加带记录分隔符的行 介于(加入)之间,第一次特别关注!(k in a)
,自此以后a[k]=a[k] ORS $0
将从额外的记录分隔符开始END{...
完成后,打印所有令人满意的条件。