[Bioperl-l] Bio::Tools::IUPAC inconsistency

mql201 M.Q.Lewis at exeter.ac.uk
Wed Aug 18 11:03:23 EDT 2004


Hello

I'm using the mod above.  I'm getting inconsistent output.  This fn, which 
takes an ambiguous DNA 
sequence and returns an array of all the possible variants expanded from IUPAC 
meta symbols:

sub expandMeta {
  my($uniqueseq);               # unique sequence object
  my(@rAr) = ();                # return array
  my($seqstr) = "";             # sequence attr of a sequence object

  my($ure) = $_[0];           # upstream regulatory element (sequence to 
check)

  my($ambiseq) = new Bio::Seq (-seq => $ure, -type => 'Dna');
  my($stream) = new Bio::Tools::IUPAC(-seq => $ambiseq);

  while($uniqueseq = $stream->next_seq()) {
    $seqstr = $uniqueseq->seq();
    print("$ure -> |$seqstr|<br>");
    ## process the unique Seq object.
    #
    @rAr = (@rAr, $seqstr);
  }
  return(@rAr);
}

when i feed it these two sequences, for example,
ANTTW
GGWAGGT

the print statement in the while loop outputs this:

ANTTW -> |ANTTW|
GGWAGGT -> |GGAAGGT|
GGWAGGT -> |GGTAGGT|

the fact that both strings go through the loop means they're being picked up, 
but i'd expect this 
kind of output:

ANTTW -> |AATTA|
ANTTW -> |ATTTA|
ANTTW -> |ACTTA|
ANTTW -> |AGTTA|
ANTTW -> |AATTT|
ANTTW -> |ATTTT|
ANTTW -> |ACTTT|
ANTTW -> |AGTTT|
GGWAGGT -> |GGAAGGT|
GGWAGGT -> |GGTAGGT|

I suspect this is an easy one, but i can't see where its going wrong.

many thanks IA
mark



More information about the Bioperl-l mailing list