- 论坛徽章:
- 7
|
回复 5# G比蒙
- #!/usr/bin/perl
- use strict;
- use Bio::SeqIO;
- my $file='seq.fasta';
- my $SEQ=Bio::SeqIO->new(-file=>"$file", -format=>'fasta');
- my $data={};
- while (my $seq=$SEQ->next_seq){
- $data->{$seq->id}=$seq->seq;
- }
- $SEQ->close();
- open (OUT,">Results.txt");
- my @ids=sort {$a<=>$b} keys %$data;
- while (my $id=shift @ids){
- for (my $i=0;$i<@ids;$i++){
- print "$id\/$ids[$i]:\t";
- my @Base_seqA=split //,$data->{$id};
- my @Base_seqB=split //,$data->{$ids[$i]};
- my $num=0;
- for (my $j=0;$j<@Base_seqA;$j++){
- if($Base_seqA[$j]!~/[N-]/i and $Base_seqB[$j]!~/[N-]/i and $Base_seqA[$j] ne $Base_seqB[$j]){
- # print "$Base_seqA[$j] <=> $Base_seqB[$j]\n";
- # sleep 1;
- $num++;
- }
- }
- print "$num\n";
- print OUT "$id\/$ids[$i]:\t$num\n";
- }
- }
- close OUT;
- print "OK!\n";
复制代码
我使用的数据在附件!
Test.rar
(21.5 KB, 下载次数: 15)
|
|