脚本内容如下:
#!/usr/bin/env perl
die "perl $0 blast1 blast2 >besthit.blast \n" unless @ARGV==2;
my $in1 = shift;
my $in2 = shift;
my %h1 = readIN($in1);
my %h2 = readIN($in2);
foreach my $id (sort keys %h1){
my $id2 = $h1{$id}[0];
if(exists $h2{$id2} && $h2{$id2}[0] eq $id){
print "$h1{$id}[1]\n";
}
}
sub readIN{
my $in = shift;
my %hash;
open IN, $in ||die $!;
while(<IN>){
chomp;
my @t = split;
if(!exists $hash{$t[0]}){
$hash{$t[0]}[0]=$t[1];
$hash{$t[0]}[1]=$_;
}
}
close IN;
return %hash;
}
执行perl脚本
perl 自己命名的脚本名字 blast1 blast2 > ty
其中blast1为A序列与B序列进行比对。
blast2为B序列与A序列进行比对。