免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 37202 | 回复: 6

按照出现次数提取第一列的关键字 [复制链接]

论坛徽章:
0
发表于 2019-11-13 11:04 |显示全部楼层
大家好,我有这样的一个文件:
Query_id        Query_length        Query_start        Query_end        Subject_id        Subject_length        Subject_start        Subject_end        Identity(%)        Align_length        Mismatch        Gap        Score        E_value        Subject_annotation
VVC24062        372        6        372        XP_001951491.1        401        4        370        95.6        367        16        0        700.3        2.2e-199        XP_001951491.1 PREDICTED: eukaryotic initiation factor 4A-III [Acyrthosiphon pisum]
VVC24062        372        6        372        XP_022164948.1        401        4        370        95.4        367        17        0        699.1        4.9e-199        XP_022164948.1 eukaryotic initiation factor 4A-III [Myzus persicae]
VVC24062        372        6        372        XP_015781253.1        405        8        374        87.2        367        47        0        660.6        1.9e-187        XP_015781253.1 eukaryotic initiation factor 4A-III [Tetranychus urticae]
VVC24062        372        13        372        XP_018917276.1        398        8        367        88.9        360        40        0        659.4        4.3e-187        XP_018917276.1 PREDICTED: eukaryotic initiation factor 4A-III [Bemisia tabaci]
VVC24062        372        13        372        XP_013776925.1        403        13        372        88.9        360        40        0        658.7        7.3e-187        XP_013776925.1 eukaryotic initiation factor 4A-III [Limulus polyphemus]
VVC24062        372        13        372        XP_021917996.1        403        13        372        88.3        360        42        0        657.9        1.2e-186        XP_021917996.1 eukaryotic initiation factor 4A-III [Zootermopsis nevadensis]
VVC24062        372        13        372        XP_023711127.1        403        13        372        88.3        360        42        0        657.9        1.2e-186        XP_023711127.1 eukaryotic initiation factor 4A-III [Cryptotermes secundus]
VVC24062        372        13        372        ETN64218.1        400        10        369        88.1        360        43        0        654.4        1.4e-185        ETN64218.1 DEAD box ATP-dependent RNA helicase [Anopheles darlingi]
VVC24062        372        13        372        KFB46711.1        400        10        369        87.8        360        44        0        654.1        1.8e-185        KFB46711.1 AGAP003089-PA-like protein [Anopheles sinensis]
VVC24062        372        1        372        XP_012254705.1        403        1        372        84.9        372        56        0        653.7        2.3e-185        XP_012254705.1 eukaryotic initiation factor 4A-III [Athalia rosae]
VVC24062        372        13        372        XP_312776.3        400        10        369        87.5        360        45        0        652.9        4.0e-185        XP_312776.3 AGAP003089-PA [Anopheles gambiae str. PEST] [Anopheles gambiae]
VVC24062        372        13        372        XP_975511.1        404        14        373        87.2        360        46        0        652.5        5.2e-185        XP_975511.1 PREDICTED: eukaryotic initiation factor 4A-III [Tribolium castaneum]
VVC24062        372        13        372        XP_004521206.1        402        12        371        87.8        360        44        0        652.5        5.2e-185        XP_004521206.1 eukaryotic initiation factor 4A-III [Ceratitis capitata]
VVC24062        372        1        372        KZS17397.1        404        1        373        85.8        373        52        1        652.5        5.2e-185        KZS17397.1 Eukaryotic initiation factor 4A-III [Daphnia magna]
VVC24063        355        6        355        XP_001951491.1        401        4        353        95.4        350        16        0        666.0        4.3e-189        XP_001951491.1 PREDICTED: eukaryotic initiation factor 4A-III [Acyrthosiphon pisum]
VVC24063        355        6        355        XP_022164948.1        401        4        353        95.1        350        17        0        664.8        9.7e-189        XP_022164948.1 eukaryotic initiation factor 4A-III [Myzus persicae]
VVC24063        355        6        355        XP_015781253.1        405        8        357        86.6        350        47        0        626.3        3.8e-177        XP_015781253.1 eukaryotic initiation factor 4A-III [Tetranychus urticae]
VVC24063        355        13        355        XP_018917276.1        398        8        350        88.3        343        40        0        625.5        6.5e-177        XP_018917276.1 PREDICTED: eukaryotic initiation factor 4A-III [Bemisia tabaci]
VVC24063        355        1        355        XP_023328235.1        374        1        355        85.9        355        50        0        625.5        6.5e-177        XP_023328235.1 eukaryotic initiation factor 4A-III [Eurytemora affinis]
VVC24063        355        13        355        XP_013776925.1        403        13        355        88.3        343        40        0        624.8        1.1e-176        XP_013776925.1 eukaryotic initiation factor 4A-III [Limulus polyphemus]
VVC24063        355        13        355        XP_021917996.1        403        13        355        87.8        343        42        0        624.0        1.9e-176        XP_021917996.1 eukaryotic initiation factor 4A-III [Zootermopsis nevadensis]
VVC24063        355        13        355        XP_023711127.1        403        13        355        87.8        343        42        0        624.0        1.9e-176        XP_023711127.1 eukaryotic initiation factor 4A-III [Cryptotermes secundus]
VVC24063        355        1        355        XP_023244025.1        356        1        355        85.6        355        51        0        622.9        4.2e-176        XP_023244025.1 eukaryotic initiation factor 4A-III [Centruroides sculpturatus]
VVC24063        355        1        355        XP_012254705.1        403        1        355        84.5        355        55        0        620.9        1.6e-175        XP_012254705.1 eukaryotic initiation factor 4A-III [Athalia rosae]
VVC24064        196        1        184        XP_008178315.1        1308        1        200        48.3        205        80        26        165.2        1.3e-38        XP_008178315.1 PREDICTED: uncharacterized protein K02A2.6-like [Acyrthosiphon pisum]
VVC24064        196        1        189        XP_008188102.1        1220        1        208        46.2        210        90        23        158.7        1.2e-36        XP_008188102.1 PREDICTED: uncharacterized protein K02A2.6-like [Acyrthosiphon pisum]
VVC24064        196        3        196        XP_008182441.1        1334        24        217        46.2        197        100        6        146.0        8.3e-33        XP_008182441.1 PREDICTED: uncharacterized protein K02A2.6-like [Acyrthosiphon pisum]
VVC24064        196        3        196        XP_022162181.1        612        24        217        45.2        197        102        6        143.7        4.1e-32        XP_022162181.1 uncharacterized protein K02A2.6-like [Myzus persicae]
VVC24064        196        2        190        XP_008484647.2        449        23        208        39.7        189        111        3        115.9        9.2e-24        XP_008484647.2 PREDICTED: uncharacterized protein LOC103521316 [Diaphorina citri]
VVC24064        196        3        157        XP_022166224.1        1195        23        176        41.9        155        89        1        111.3        2.3e-22        XP_022166224.1 uncharacterized protein K02A2.6-like, partial [Myzus persicae]
VVC24064        196        2        156        XP_017304412.1        359        11        165        38.1        155        96        0        108.2        1.9e-21        XP_017304412.1 PREDICTED: uncharacterized protein LOC103521973 [Diaphorina citri]


对于第一列的信息,我想根据每行最后的这个关键词 [Acyrthosiphon pisum] 来计算出现次数,譬如
VVC24064        196        1        184        XP_008178315.1        1308        1        200        48.3        205        80        26        165.2        1.3e-38        XP_008178315.1 PREDICTED: uncharacterized protein K02A2.6-like [Acyrthosiphon pisum]
VVC24064        196        1        189        XP_008188102.1        1220        1        208        46.2        210        90        23        158.7        1.2e-36        XP_008188102.1 PREDICTED: uncharacterized protein K02A2.6-like [Acyrthosiphon pisum]
VVC24064        196        3        196        XP_008182441.1        1334        24        217        46.2        197        100        6        146.0        8.3e-33        XP_008182441.1 PREDICTED: uncharacterized protein K02A2.6-like [Acyrthosiphon pisum]
VVC24064        196        3        196        XP_022162181.1        612        24        217        45.2        197        102        6        143.7        4.1e-32        XP_022162181.1 uncharacterized protein K02A2.6-like [Myzus persicae]
VVC24064        196        2        190        XP_008484647.2        449        23        208        39.7        189        111        3        115.9        9.2e-24        XP_008484647.2 PREDICTED: uncharacterized protein LOC103521316 [Diaphorina citri]
VVC24064        196        3        157        XP_022166224.1        1195        23        176        41.9        155        89        1        111.3        2.3e-22        XP_022166224.1 uncharacterized protein K02A2.6-like, partial [Myzus persicae]
VVC24064        196        2        156        XP_017304412.1        359        11        165        38.1        155        96        0        108.2        1.9e-21        XP_017304412.1 PREDICTED: uncharacterized protein LOC103521973 [Diaphorina citri]

那么它对应出现次数为3,因为后面中括号里的名字一样只能算VVC24064出现一次。
VVC24064 [Acyrthosiphon pisum]
VVC24064        [Myzus persicae]
VVC24064        [Diaphorina citri]

我想把第一列的每个出现的词按照这样统计出来行数,最后只输出出现次数小于等于5的id,请问如何实现,谢谢了!

论坛徽章:
8
2016科比退役纪念章
日期:2018-10-24 08:24:0115-16赛季CBA联赛之北控
日期:2019-03-12 14:34:562016科比退役纪念章
日期:2019-04-01 10:33:0915-16赛季CBA联赛之山东
日期:2019-04-17 12:46:3215-16赛季CBA联赛之广夏
日期:2019-05-09 16:40:4015-16赛季CBA联赛之广夏
日期:2019-10-10 15:33:4015-16赛季CBA联赛之辽宁
日期:2019-10-15 08:37:0615-16赛季CBA联赛之北控
日期:2021-03-30 15:53:34
发表于 2019-11-13 16:48 |显示全部楼层
本帖最后由 cfwyy 于 2019-11-14 08:30 编辑

列分隔符是什么? 可以的话传一个示例文件吧。
我先当成用tab分隔,总共是15列。

  1. gawk -F"\t" 'NR>1{split($15,a,"\\[|\\]");b[$1][a[2]]}END{for(i in b)if(length(b[i])<=5)print i}' file
复制代码


评分

参与人数 1可用积分 +10 收起 理由
飘絮絮絮丶 + 10 赞一个!

查看全部评分

论坛徽章:
0
发表于 2019-11-14 10:04 |显示全部楼层
列分隔符是制表符,需要用perl来写。shel命令我没有linux系统。

论坛徽章:
0
发表于 2019-11-14 10:07 |显示全部楼层

按照出现次数提取第一列的关键字

这个是文件,谢谢大家了!

file.rar

990 Bytes, 下载次数: 22

论坛徽章:
0
发表于 2019-11-17 11:47 |显示全部楼层
回复 2# cfwyy

在吗,在帮忙解答下吧,谢谢了!急用。

论坛徽章:
8
2016科比退役纪念章
日期:2018-10-24 08:24:0115-16赛季CBA联赛之北控
日期:2019-03-12 14:34:562016科比退役纪念章
日期:2019-04-01 10:33:0915-16赛季CBA联赛之山东
日期:2019-04-17 12:46:3215-16赛季CBA联赛之广夏
日期:2019-05-09 16:40:4015-16赛季CBA联赛之广夏
日期:2019-10-10 15:33:4015-16赛季CBA联赛之辽宁
日期:2019-10-15 08:37:0615-16赛季CBA联赛之北控
日期:2021-03-30 15:53:34
发表于 2019-11-20 09:55 |显示全部楼层
本帖最后由 cfwyy 于 2019-11-20 09:57 编辑

回复 5# chenjiali1

不好意思,好几天没上论坛了。话说急用的话,可以先试试gawk的呀,shell环境在windows下现在也不是什么问题了,用shell不一定非得装一个Linux系统才行。
windows下可以用的shell环境有Cygwin, git bash, msys2,如果是win10的还有WSL。

perl的话,我是不太熟,熟的话,第一次就用perl写了,写perl给我的感觉是一堆符号会搞死人,可能是我不太会用

勉强写了一个,可试试看。
  1. perl -w -n -e 'BEGIN{%d=()};@a=split /\t/,$_;if(/\[([\w ]+)\]/){if(exists $d{$a[0]}){$d{$a[0]}->{$1}="";}else{$d{$a[0]}={};$d{$a[0]}->{$1}="";}}END{foreach $k (keys %d){$n=keys %{$d{$k}};if($n<=5){print $k,"\n";}}}' file
复制代码


论坛徽章:
0
发表于 2019-11-21 13:59 |显示全部楼层
  1. #!/usr/bin/perl

  2. use strict;

  3. my %hash = ();
  4. open(DATA,"<file.txt");
  5. my $title = <DATA>;
  6. while (<DATA>) {
  7.          my @data = split /\t/;
  8.          my ($subject_annotation) = ($data[-1] =~ /.*?\[(.*?)\]/);
  9.          $hash{$data[0]}{$subject_annotation} = 1;
  10. }
  11. close DATA;

  12. foreach my $query_id (sort keys %hash) {
  13.         my $times = keys %{$hash{$query_id}};
  14.         print "$query_id\t$times\n" if ($times <= 5);
  15. }

  16. <>;
复制代码



输出:
VVC24064        3

CU下个文档还要扫描关注,戏怪人气低到极致。你试试吧。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP