美文网首页
利用perl脚本统计基因组中的GAP

利用perl脚本统计基因组中的GAP

作者: qujingtao | 来源:发表于2024-01-01 15:01 被阅读0次
    perl find_gap.pl genome.fa > gap.info
    
    ### find_gap.pl
    local $/ = ">";
    <>;
    while (<>) {
        s/>//;
        my @a = split/\n/,$_,2;
        $a[1] =~ s/\n//g;
        my @seq = split//,$a[1];
        foreach  (0..$#seq) {
            if ($seq[$_] =~ /N/) {
                push @{$hash{$a[0]}},$_;
            }
        }
    }
    
    foreach my $chr (sort{$a cmp $b}keys %hash) {
        my @gap = group(@{$hash{$chr}});
        foreach  (@gap) {
            print "$chr\t$_->[0]\t$_->[1]\n";
        }
    }
    
    sub group {
        my @tmp = ();
        my $tmp = $_[0];
        my $cnt = 0;
        my @return;
        foreach  (0..$#_-1) {
            if ($_[$_+1] - $_[$_] != 1) {
                push @{$tmp[$cnt]},$_[$_];
                $cnt++;
            }else{
                push @{$tmp[$cnt]},$_[$_];
            }
        }
        push @{$tmp[$cnt]},$_[-1];
        foreach  (@tmp) {
            push @return,[(sort{$a<=>$b}@{$_})[0],scalar(@{$_})];
        }
        return @return;
    }
    

    相关文章

      网友评论

          本文标题:利用perl脚本统计基因组中的GAP

          本文链接:https://www.haomeiwen.com/subject/jhuundtx.html