- 论坛徽章:
- 0
|
- die "\nusage: perl $0 <blast.list> <gene list> \n\n" unless @ARGV == 2;
- my $file = shift;
- my $gene = shift;
- my %namelist;
- my @all;
- open (GM, "<$gene") or die;
- while(<GM>) {
- chomp($_);
- next if (/^\s*$|^#+/);
- my @list = split /\s+/, $_;
- my ($name, $ident) = ($list[0], $list[1]);
- $namelist{$name} = 0;
- }
- close(GM);
- open (LIST, "<$file") or die;
- while(<LIST>){
- chomp;
- my @a=split;
- open IN,$a[1];
- my $exit=0;
- my $rup=0;
- my @b;
- <IN>;
- my @line=<IN>;
- chomp @line;
- foreach my $tmp(@line){
- @b = split /\s+/,$tmp;
- if(exists $namelist{$b[0]}){
- $namelist{$b[0]}++;
- $exit++;
- }else{
- $rup++;
- }
- }
-
- if($namelist{$b[0]}>=1 && ($exit>=keys %namelist) && $rup==0){
- push @all, $a[0];
- }
- }
- close(LIST);
- my $all=join "\n",@all;
- print "$all\n";
复制代码
附上解决了的代码 给有需要的人。。。 |
评分
-
查看全部评分
|