in reply to Simple String Alignment
@in = split(//,<STDIN>); pop(@in); $regex = '.*'.join('(.*)',@in).'.*'; @sequences = qw/ABCDHA ACDBGJ CADHMK ABICID/; for (@sequences) { @letters = split(//,$_); s/.*($in[0].*$in[$#in]).*/$1/; if ((@gaps) = (m/$regex/o)){ if (length(join('',@gaps)) > $biglen) { unshift(@in_the_running, $ +_); $biglen = length(join('',@gaps)) } else { push(@in_the_running, $_) } } } print $in_the_running[0], "\n"; @base = split(//,$in_the_running[0]); for my $seqno (1..$#in_the_running) { @seq = split(//,$in_the_running[$seqno]); for $q (@base) { if ($seq[0] eq $q) { print $q; shift(@seq); next } else { print '-' } } print "\n"; }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Simple String Alignment
by monkfan (Curate) on May 11, 2005 at 01:59 UTC | |
by Adrade (Pilgrim) on May 11, 2005 at 02:51 UTC |