我想请求一些关于如何将共享唯一 ID 的行合并到逗号分隔表中的提示。非常感谢 Perl、sed 或 awk 中的任何提示。
这就是我现在的表格的样子:
protein_id go_id
4102 GO:0003676
4125 GO:0003676
4125 GO:0008270
4139 GO:0008270
这就是我希望转换为的方式:
protein_id go_id
4102 GO:0003676
4125 GO:0003676, GO:0008270
4139 GO:0008270
使用 Perl 数组哈希...
#!/usr/bin/perl
use warnings;
use strict;
my %data;
my $header;
while(<DATA>){
chomp;
if ($. == 1){
$header = $_;
next;
}
push @{ $data{(split)[0]} }, (split)[1];
}
print "$header\n";
for my $k (sort {$a<=>$b} keys %data){
print "$k\t";
print join(', ', @{ $data{$k} });
print "\n";
}
__DATA__
protein_id go_id
4102 GO:0003676
4125 GO:0003676
4125 GO:0008270
4139 GO:0008270
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)