Hi Henry Have you looked at using substr to take each octamer from the start for the sequence? It's probably a lot more efficient than splitting it into an array and taking the first 8 bases each time (althought I'm pretty sure that was exactly the way I did my first DNA scripts too :-)
Also, if it's any use to you, here is my reverse complement subroutine, which you could use as the basis of a palindrome checker which tests for any palindrome, rather than just the restricted set you are using (of course, those may be all the ones that you're interested in). sub complement { # Reverse complements the supplied string my $seq = shift; # Get the string $seq = reverse $seq; # Reverse it (scalar, therefore character reverse) # Complement each base (IUPAC codes, upper and lower case) $seq =~ tr/GATCgatcRYMKrymkSWswHBVDhbvdNn/CTAGctagYRMKyrmkWSwsDVBHdvbhNn/; return $seq; } Cheers Mark C > -----Original Message----- > From: Henry Hung-Yung Wang [mailto:[EMAIL PROTECTED]] > Sent: 09 November 2001 15:31 > To: [EMAIL PROTECTED] > Subject: simple code > > > > Hi All, > > I have just written some codes, but they are not doing what I > wanted them > to do. Here are the codes: > > @motif= ('ACGTACGT', 'AAAATTTT', 'CCGGCCGG', 'GGCCGGCC'); > > print "Please enter sequences to be examined:\n\n"; > $dna=<STDIN>; chomp $dna; > > @dna=split (//, $dna); > foreach $bp (0..$#dna-8){ > $eightmer=join ('', @dna[$bp, $bp+1, $bp+2, $bp+3, $bp+4, > $bp+5, $bp+6, > $bp+7]); > if ($eightmer=~ $motif[0]){ > print "This sequence, $eightmer, is palindromic\n\n"; > } else { > print "There is no other palindromic sequences\n\n"; > exit; > } > } > > I am trying to take the input and make them into sequences of > 8 letters. > Then I want to match the sequences with the 'motif' defined > in the codes. > However, when I run the program, the only motif that was > recognized was > 'AAAATTTT'. What am I doing wrong here? Thanks for the help. > > Henry > > -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]