我有一个包含遗传信息的大型数据文件:
head Homo_sapiens.GRCh38.93.chr.onlyGene.gff3
1 ensembl gene 100000637 100000739 . - . ID=ENSG00000202259;Name=RNU6-1318P;Name=ENSG00000202259
1 ensembl gene 101133153 101133339 . + . ID=ENSG00000252765;Name=RF00424;Name=ENSG00000252765
1 ensembl gene 10163268 10163374 . + . ID=ENSG00000201746;Name=RNU6-828P;Name=ENSG00000201746
1 ensembl gene 101728642 101728737 . - . ID=ENSG00000252530;Name=RNU6-965P;Name=ENSG00000252530
1 ensembl gene 101859851 101859957 . + . ID=ENSG00000252717;Name=RNU6-352P;Name=ENSG00000252717
1 ensembl gene 10298966 10299072 . + . ID=ENSG00000199562;Name=RNU6-37P;Name=ENSG00000199562
1 ensembl gene 10306465 10306757 . + . ID=ENSG00000264501;Name=RN7SL731P;Name=ENSG00000264501
1 ensembl gene 103523562 103523879 . + . ID=ENSG00000222069;Name=RN7SKP285;Name=ENSG00000222069
1 ensembl gene 10616836 10617115 . + . ID=ENSG00000243267;Name=RN7SL614P;Name=ENSG00000243267
1 ensembl gene 109100193 109100612 . + . ID=ENSG00000278249;Name=SCARNA2;Name=ENSG00000278249
tail Homo_sapiens.GRCh38.93.chr.onlyGene.gff3
Y havana gene 9740584 9758476 . + . ID=ENSG00000212855;Name=TTTY2;Name=ENSG00000212855
Y havana gene 9753156 9774289 . - . ID=ENSG00000129845;Name=TTTY1;Name=ENSG00000129845
Y havana gene 9801153 9813245 . + . ID=ENSG00000224075;Name=TTTY22;Name=ENSG00000224075
Y havana gene 9813315 9817513 . + . ID=ENSG00000228379;Name=AC010891.1;Name=ENSG00000228379
Y havana gene 9831418 9846696 . - . ID=ENSG00000229208;Name=RBMY2NP;Name=ENSG00000229208
Y havana gene 9868462 9868702 . - . ID=ENSG00000274445;Name=AC006986.1;Name=ENSG00000274445
Y havana gene 9869664 9870781 . + . ID=ENSG00000231874;Name=TSPY18P;Name=ENSG00000231874
Y havana gene 9905595 9908139 . - . ID=ENSG00000187657;Name=TSPY13P;Name=ENSG00000187657
Y havana gene 9910798 9911962 . + . ID=ENSG00000239225;Name=TTTY23;Name=ENSG00000239225
Y havana gene 9951553 9959423 . + . ID=ENSG00000234950;Name=RBMY2OP;Name=ENSG00000234950
第 2 列显示数据来源(基因在哪个生物数据库上注册)。
有没有办法显示第 2 列中的所有值,但每个值仅显示一次?如ensembl, havana, foo, bar
,如果可能的话,包含每个值的行数?
答案1
你可以使用这一切来完成AWK
awk '{A[$2]++}END{for(i in A)print i,A[i]}' Homo_sapiens.GRCh38.93.chr.onlyGene.gff3
输出将是
ensembl 10
havana 10
答案2
awk
您可以尝试通过管道将(选择第二列)的输出通过sort
和 (如@αГsнιη所述)uniq
作为其--count
选项,例如
awk '{print $2}' Homo_sapiens.GRCh38.93.chr.onlyGene.gff3 | sort | uniq -c