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>