Edward Wijaya wrote:
Hi John and David,

Hello,

I forgot to mentioned another variances of scoring apart from
this two

They are cases where they overlap:

CASE C:

.........       .......           #score 16
GATTACGAGTGGCGCTCGTGTAACGGCA
GATTACG
  TTACGAG       CGTGTAA


CASE D:

             GCTCGTG             #score 17
  ..................
GATTACGAGTGGCGCTCGTGTAACGGCA
   TACGAGT
        GTGGCGC


my @ar2 = ('GATTACG','TTACGAG','CGTGTAA'); #16 my @ar3 = ('TACGAGT','GTGGCGC','GCTCGTG'); #17

This will work for overlapping data:

sub score {
  my ( $str, $array ) = @_;
  my $offset = 0;
  my $mask = "\0" x length $str;

  for my $frag ( @$array ) {
    ( my $idx = index $str, $frag, $offset ) >= 0 or next;
    substr $mask, $idx, length $frag, $frag;
    $offset = $idx + 1;
    }

  return $mask =~ tr/\0//c;
  }



John
--
use Perl;
program
fulfillment

--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>




Reply via email to