【发布时间】:2016-03-11 18:17:53
【问题描述】:
我正在尝试总结我的数据并计算特定项目的数量
这些是人类测序数据,因此非常庞大。
#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT NORMAL PRIMARY
1 12867 . C A 5 q40;bldp;blq SS=1;VT=SNP; GT:DP:AD:BQ:MQ:SB:FA:SS:SSC:MQA 1/0:8:7,1:36,39:0:0.0,0.0:0.125:0:5:14.9,16.0 1/0:2:2,0:33,0:0:0.0,0:0.0:1:5:16.0,0
为了简化,数据看起来像这样
column1 column2 column3 column4 column5 column6 column7 column8 column9 column10 column11
x x x x x x x SS=1 x 1/0:8:7,1:36,39:0:0.0,0.0:0.125:0:5:14.9,16.0 1/0:2:2,0:33,0:0:0.0,0:0.0:1:5:16.0,0
x x x x x x x SS=2 x 1/0:8:7,1:36,39:0:0.0,0.0:0.125:0:5:14.9,16.0 1/0:2:2,0:33,0:0:0.0,0:0.0:1:5:16.0,0
首先,我需要计算 column8 中有多少个不同的 SS。有 5 种不同类型的 SS,即 SS=1 ..... SS=5。 这可以通过 grep 命令和 我试过了
grep SS=1 file1.vcf | wc -l
grep SS=2 file1.vcf | wc -l
那我想统计第10列和第11列第7个冒号(:)后的位置有多少个“0”、“1”、“2”
这是我不知道该怎么做的部分。我正在考虑使用 awk 但我不确定如何指定在特定位置查找(在第 7 个冒号 (:) 之后)
awk -F ':' '$11==1' #this does command only specifies column but not at specific position.
我有 246 个文件,我想做完全相同的事情。如何应用到我的所有文件并将计数写入 txt 文件?我只知道如何一个一个地做,最后可能我可以 cat 计数文件。
for f in *.vcf; do grep SS=1 "$f" | wc -l > ${f}SS1.txt; done
【问题讨论】:
-
如果您/我们不关心前 7 列中的值,您为什么要向我们展示它们?使您的示例尽可能简洁明了——您需要我们为帮助您付出的努力越少,我们就越有可能帮助您。显示给定示例输入的预期输出。
标签: awk grep text-processing